将一个连接的整数列表拆分为其原始形式
Splitting a joined list of integers to its original form
我正在尝试解决我面临的问题。我想将整数列表转换为单个整数(加入列表的所有元素),然后将它们拆分为原始形式。例如对于下面的代码(假设我有一个处理 y 和列表的索引的函数)所以如果为 y
输入 'chart'
y = list(input("enter name"))
List=[1,2,3,4,5]
for i,p in enumerate(List):
y[i] = p
print('list is'y)
s = int(''.join([str(int) for int in List]))
print('joined form of the list is', s)
def dec():
t = [', '.join([str(int) for int in List])]
print('original form is', t)
dec()
我希望输出为
List is [1, 2, 3, 4, 5]
joined form of the list is 12345
original form is [1, 2, 3, 4, 5]
我得到的是单个字符串,而不是原始形式。我该如何解决?
您的代码 returns 一个包含 1 个元素的列表,它是您列表的字符串表示形式:
>>> [', '.join([str(i) for i in l])]
['1, 2, 3, 4, 5']
改用:
l = [1, 2, 3, 4, 5]
# encode from list
n = int(''.join([str(i) for i in l]))
# decode from number
o = [int(i) for i in str(n)]
输出:
>>> l
[1, 2, 3, 4, 5]
>>> n
12345
>>> o
[1, 2, 3, 4, 5]
你可以通过 for 循环将它们全部放在一起,并将先前的结果乘以 10 并添加现有数字
# your code goes here
array = [1,2,3,4,5]
result = 0
for digit in array:
result = result*10+digit
print(result)
输出
12345
你几乎做对了。您需要做的就是将 t = [', '.join([str(int) for int in List])]
更改为 t = [int(i) for i in List]
y = list(input("enter name"))
List=[1,2,3,4,5]
for i,p in enumerate(List):
y[i] = p
print('list is',y)
s = int(''.join([str(int) for int in List]))
print('joined form of the list is', s)
def dec():
t = [int(i) for i in List]
print('original form is', t)
dec()
int 是 python 中的一个函数(它将您提供的字符串转换为整数)。我建议不要使用该词来指定一个变量,无论其寿命有多短。
现在,字符串class的join方法是一个函数,returns一个字符串由迭代器(这里是你的整数列表)的所有元素组成,由字符串分隔.那么,您正在使用该代码行做什么:
t = [', '.join([str(int) for int in List])]
正在制作一个由一个元素组成的列表,该字符串由列表中的所有元素组成,以逗号分隔。
如果您想将所有整数转换为字符串并从中创建一个列表,您应该跳过“连接”部分:
t = [str(i) for i in yourList]
我正在尝试解决我面临的问题。我想将整数列表转换为单个整数(加入列表的所有元素),然后将它们拆分为原始形式。例如对于下面的代码(假设我有一个处理 y 和列表的索引的函数)所以如果为 y
输入 'chart' y = list(input("enter name"))
List=[1,2,3,4,5]
for i,p in enumerate(List):
y[i] = p
print('list is'y)
s = int(''.join([str(int) for int in List]))
print('joined form of the list is', s)
def dec():
t = [', '.join([str(int) for int in List])]
print('original form is', t)
dec()
我希望输出为
List is [1, 2, 3, 4, 5]
joined form of the list is 12345
original form is [1, 2, 3, 4, 5]
我得到的是单个字符串,而不是原始形式。我该如何解决?
您的代码 returns 一个包含 1 个元素的列表,它是您列表的字符串表示形式:
>>> [', '.join([str(i) for i in l])]
['1, 2, 3, 4, 5']
改用:
l = [1, 2, 3, 4, 5]
# encode from list
n = int(''.join([str(i) for i in l]))
# decode from number
o = [int(i) for i in str(n)]
输出:
>>> l
[1, 2, 3, 4, 5]
>>> n
12345
>>> o
[1, 2, 3, 4, 5]
你可以通过 for 循环将它们全部放在一起,并将先前的结果乘以 10 并添加现有数字
# your code goes here
array = [1,2,3,4,5]
result = 0
for digit in array:
result = result*10+digit
print(result)
输出
12345
你几乎做对了。您需要做的就是将 t = [', '.join([str(int) for int in List])]
更改为 t = [int(i) for i in List]
y = list(input("enter name"))
List=[1,2,3,4,5]
for i,p in enumerate(List):
y[i] = p
print('list is',y)
s = int(''.join([str(int) for int in List]))
print('joined form of the list is', s)
def dec():
t = [int(i) for i in List]
print('original form is', t)
dec()
int 是 python 中的一个函数(它将您提供的字符串转换为整数)。我建议不要使用该词来指定一个变量,无论其寿命有多短。
现在,字符串class的join方法是一个函数,returns一个字符串由迭代器(这里是你的整数列表)的所有元素组成,由字符串分隔.那么,您正在使用该代码行做什么:
t = [', '.join([str(int) for int in List])]
正在制作一个由一个元素组成的列表,该字符串由列表中的所有元素组成,以逗号分隔。
如果您想将所有整数转换为字符串并从中创建一个列表,您应该跳过“连接”部分:
t = [str(i) for i in yourList]