如果我有一个列表,例如:
my_list = [[1,2,0,1], [1,0,0,1]]
我想将其拆分为零并将它们扔掉,这样我最终会得到类似的结果:
my_list = [[[1, 2], [1]], [[1],[1]]]
非常感谢任何帮助。
如果我有一个列表,例如:
my_list = [[1,2,0,1], [1,0,0,1]]
我想将其拆分为零并将它们扔掉,这样我最终会得到类似的结果:
my_list = [[[1, 2], [1]], [[1],[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]
将嵌套列表作为输入有点过于具体,但此函数将使用与 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]]