如何摆脱列表内的列表而只在列表内包含数字?

时间:2019-05-05 20:44:23

标签: python python-3.x

我正在尝试将数字列表划分为数字。例如:数字132将分为1、3和2。如何摆脱列表中的列表。所以这只是整数。

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a = []
for digit in lst:
    a.append([int(i) for i in str(digit)])
print(a)

输出给出[[1], [2], [3], [4], [5], [6], [7], [8], [9], [1, 0]]

我期望[1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0]的输出。

3 个答案:

答案 0 :(得分:1)

您要在a的{​​{1}}处添加一个列表,因此您将获得一个列表列表。相反,您应该添加一个int以获取int列表。像

a.append([int(i) for i in str(digit)])

答案 1 :(得分:1)

使用列表理解

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sol = [int(j) for i in lst for j in list(str(i))]

输出

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

答案 2 :(得分:0)

您可以尝试一下:

In [56]: for item in lst:
    ...:     if item > 9: # this is what you're interested in
    ...:         for x in str(item):
    ...:             end.append(int(x))
    ...:     else:
    ...:         end.append(item)
    ...:
    ...:

In [57]: end
Out[57]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0]

In [58]: lst
Out[58]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

我想到的最快事情是将项目转换为大于9的字符串,然后迭代该字符串并将每个 string-digit 返回诠释。