我有一个整数列表,看起来像这样:
paystring[:3]
[[1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 2],
[2, 2, 5, 5, 4, 3, 3, 3, 3, 3, 2, 2],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
我需要将它们转换为一个整数
100000002212
225543333322
000000000000
我尝试过:
x = []
for row in paystring:
x.append(int("".join(map(str, row))))
但是对于x[:3]
我得到
[100000002212, 225543333322, 0]
有什么解决方法吗?
答案 0 :(得分:3)
对您的代码的直接修改是这样:
x = []
for row in paystring:
x.append(str("".join(map(str, row))))
转换为str
而不是int
否则,它将不保留0s
答案 1 :(得分:1)
使用list-comprehension
lst = [[1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 2],
[2, 2, 5, 5, 4, 3, 3, 3, 3, 3, 2, 2],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
[''.join(map(str,l)) for l in lst]
#['100000002212', '225543333322', '000000000000']
答案 2 :(得分:1)
您可以在python中使用格式功能,如下所示:
print('{0:012d}'.format(0))
输出:
000000000000
答案 3 :(得分:0)
我认为这将解决零加在一起的问题。
paystring=[[1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 2],
[2, 2, 5, 5, 4, 3, 3, 3, 3, 3, 2, 2],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
strings = []
for el in paystring:
string = ""
for number in el:
string+= str(number)
strings.append(string)
print(strings)
它将打印以下内容: ['100000002212','225543333322','000000000000']
答案 4 :(得分:-1)
严格来说,没有像 000000000 这样的数字,我们将其写为 0 。
如果您真的想以0开头,请不要使用int()
将该字符串转换为整数