Python 拆分列表位于';0';分为两个列表

Python 拆分列表位于';0';分为两个列表,python,list,matrix,Python,List,Matrix,我有一份清单: matrix = [1, 2, 3, 0, 4, 5, 0, 6] 需要在0处将其拆分为随机数量的列表(忽略0): 我该怎么做呢?原始列表将具有随机长度和随机数。一个选项是使用: 一种选择是使用: 我认为你会发现这很有用,在你关于修改和循环列表的例子中我认为你会发现这很有用,在你关于修改和循环列表的例子中,“k”和“g”在这个上下文中是什么意思?groupby生成一个元组的iterable,元组的第一个元素是关键,元组的第二个元素是分组元素,因此k,g是相应的键和分组元素,为了

我有一份清单:

matrix = [1, 2, 3, 0, 4, 5, 0, 6]
需要在0处将其拆分为随机数量的列表(忽略0):

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

一个选项是使用:

一种选择是使用:


我认为你会发现这很有用,在你关于修改和循环列表的例子中我认为你会发现这很有用,在你关于修改和循环列表的例子中,“k”和“g”在这个上下文中是什么意思?
groupby
生成一个元组的iterable,元组的第一个元素是关键,元组的第二个元素是分组元素,因此k,g是相应的键和分组元素,为了更好地了解这一点,您可以在groupby(lst,lambda x:x!=0)中检查k,g的这两个表达式
[(k,list(g))
list(groupby(lst,lambda x:x!=0))
在这个上下文中,“k”和“g”是什么意思?
groupby
生成一个元组的iterable,元组的第一个元素是键,元组的第二个元素是分组元素,因此k,g是键,相应地分组元素,为了更好地理解这一点,您可以检查这两个表达式
[(k,list(g))对于groupby(lst,lambda x:x!=0)中的k,g)
列表(groupby(lst,lambda x:x!=0))
matrix1 = [3, 2, 1]
matrix2 = [4, 5]
matrix3 = [6]
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]]