我的输入现在看起来像这样:
[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]
我该怎么做?
答案 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]