作为列表在python中加入int

时间:2015-12-11 11:16:42

标签: python

我的输入现在看起来像这样:

[6, 7, 5, 2, 9, 9][7, 1, 5, 6, 7][1, 2, 0, 6, 3, 3, 8][8, 0, 5, 1, 2, 3]

我想制作一个如下所示的列表:

[675299, 71567, 1206338, 805123]

我该怎么做?

5 个答案:

答案 0 :(得分:3)

将数字列表转换为整数非常简单:

l = [6, 7, 5, 2, 9, 9]
n = int(''.join(map(str, l)))

n保存您的结果。

将其调整为数字列表列表是微不足道的:

l = [ 
    [6, 7, 5, 2, 9, 9],
    [7, 1, 5, 6, 7],
    [1, 2, 0, 6, 3, 3, 8],
    [8, 0, 5, 1, 2, 3]
]

n = [ int(''.join(map(str, t))) for t in l ]

再次,n保留您的结果:

>>> print(n)
[675299, 71567, 1206338, 805123]

答案 1 :(得分:1)

这是没有字符串转换的变体:

>>> [sum([10**k*j for k,j in enumerate(i)]) for i in l]
[675299, 71567, 1206338, 805123]

答案 2 :(得分:0)

arrays = [6, 7, 5, 2, 9, 9], [7, 1, 5, 6, 7], [1, 2, 0, 6, 3, 3, 8], [8, 0, 5, 1, 2, 3]
str_arrays = [[str(number) for number in array] for array in arrays]
[int(''.join(array)) for array in str_arrays]

答案 3 :(得分:0)

问题是.join()方法仅适用于字符串...所以当你尝试将它与整数一起使用时,它不起作用!

您可以使用以下代码实现您想要的目标:

lst = [[6, 7, 5, 2, 9, 9],[7, 1, 5, 6, 7],[1, 2, 0, 6, 3, 3, 8],[8, 0, 5, 1, 2, 3]]

new_lst = []

# i'm going to iter over the list to join the items inside of it
# then i'll create a new number by joining each item inside each input list 
# and then append it to a new list
for item in lst:
    new_number = ''.join(str(x) for x in item)
    new_number = int(new_number)
    new_lst.append(new_number)

print new_lst

输出:[675299, 71567, 1206338, 805123]

如果您想学习此主题,请搜索:join list integers python

答案 4 :(得分:0)

如果你喝醉了,你会觉得这很简单

>>> l = [6, 7, 5, 2, 9, 9], [7, 1, 5, 6, 7], [1, 2, 0, 6, 3, 3, 8], [8, 0, 5, 1, 2, 3]
>>> l = eval (str(l).replace(", ","").replace("][",","))
>>> l
[675299, 71567, 1206338, 805123]