将列表中的“0”拆分为两个列表

时间:2017-02-21 22:58:08

标签: python list matrix

我有一个清单:

matrix = [1, 2, 3, 0, 4, 5, 0, 6]

需要在0处忽略随机数量的列表(忽略0):

matrix1 = [3, 2, 1]
matrix2 = [4, 5]
matrix3 = [6]

我该怎么做呢?原始列表将是随机长度和随机数。

1 个答案:

答案 0 :(得分:5)

一种选择是使用groupby

from itertools import groupby

lst = [1, 2, 3, 0, 4, 5, 0, 6]
[list(g) for k, g in groupby(lst, lambda x: x != 0) if k]
# [[1, 2, 3], [4, 5], [6]]