将整数列表更改为字符串并保留每个数字

时间:2018-11-26 21:35:21

标签: python string list int

我有一个整数列表,看起来像这样:

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]

有什么解决方法吗?

5 个答案:

答案 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()将该字符串转换为整数