Python 如何从整数列表中提取单个数字?

Python 如何从整数列表中提取单个数字?,python,python-3.x,list,cs50,Python,Python 3.x,List,Cs50,作为python新手,这给我带来了一些麻烦 给定一个整数列表,如 [2, 0, 0, 0, 0, 12, 0, 8] 如何提取每个元素的独立数字以形成新列表 [2,1,2,8] 我有过迭代每个元素并使用模运算符的想法,但我似乎找不到正确的逻辑 非常感谢任何帮助我认为,最简单的方法是将值转换为字符串,提取单独的字符并将其转换回整数 例如: lst = [2, 0, 0, 0, 0, 12, 0, 8] digits = [] for value in lst: if value

作为python新手,这给我带来了一些麻烦

给定一个整数列表,如

 [2, 0, 0, 0, 0, 12, 0, 8]
如何提取每个元素的独立数字以形成新列表

 [2,1,2,8] 
我有过迭代每个元素并使用模运算符的想法,但我似乎找不到正确的逻辑


非常感谢任何帮助

我认为,最简单的方法是将值转换为字符串,提取单独的字符并将其转换回整数

例如:

lst = [2, 0, 0, 0, 0, 12, 0, 8]

digits = []
for value in lst:
    if value != 0:
        digits.extend(map(int, str(value)))

print(digits)
印刷品:

[2, 1, 2, 8]

您可以首先将所有数字转换为字符串列表,将每个字符串转换为整数,然后使用以下命令展平结果:


因为0也是一个数字,想象一下下面的情况,如果一个数字像10,20,30,40。。。。。那么它应该是1,0,2,0,3,0。。。分别

那么,您的新列表中是否需要0

如果这个问题的答案是“否”,那么答案是失败的。这里有一个解决方案

myList = [10, 0, 0, 0, 0, 12, 0, 8]

newList = []
for i in myList:
    while i >= 10:
        newList.append(i%10)
        i = i//10
    newList.append(i)

newList = [ x for x in newList if x != 0 ]

此解决方案也满足您的模逻辑

列表中元素的顺序重要吗?Like 20应该分解为0,然后是2,还是2应该先出现?@SumedhPatkar不,这种情况下的顺序无关紧要。我只需要提取每个数字,然后将它们相加。
myList = [10, 0, 0, 0, 0, 12, 0, 8]

newList = []
for i in myList:
    while i >= 10:
        newList.append(i%10)
        i = i//10
    newList.append(i)

newList = [ x for x in newList if x != 0 ]