可能重复:
Remove leading and trailing zeros from multidimensional list in Python
如果我有一个列表,如:
my_list = [[1,2,0,1], [1,0,0,1]]
我想将它分成零并将它们扔掉,这样我最终会得到类似的东西:
my_list = [[[1, 2], [1]], [[1],[1]]]
任何帮助都非常感激。
答案 0 :(得分: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]
答案 1 :(得分:0)
将嵌套列表作为输入有点过于具体,但此函数将使用与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]]