-1

可能重复:
从 Python 中的多维列表中删除前导零和尾随零

如果我有一个列表,例如:

my_list = [[1,2,0,1], [1,0,0,1]]

我想将其拆分为零并将它们扔掉,这样我最终会得到类似的结果:

my_list = [[[1, 2], [1]], [[1],[1]]]

非常感谢任何帮助。

4

2 回答 2

1

划分一个征服,你可以使用列表推导将其转换为更简单的问题

def split_a_list_at_zeros(L):
    ...
    return the_split_list

my_list = [split_a_list_at_zeros(item) for item in my_list]

Akavall 给出了一个很好的提示来拆分列表

from itertools import groupby
def split_a_list_at_zeros(L):
    return [list(g) for k, g in groupby(L, key=lambda x:x!=0) if k]
于 2012-11-29T20:55:24.317 回答
-1

将嵌套列表作为输入有点过于具体,但此函数将使用与 string.split() 完全相同的样式基于另一个数字拆分数字列表

def nsplit(number_list,key):
    s=''.join(map(chr,number_list))
    return [map(ord,x) for x in s.split(chr(key))]

print nsplit([1,2,0,1],0)

[[1,2],[1]]
于 2012-11-29T20:55:40.503 回答