我有子列表
list=[['RD-2','a',120],
['RD-2','b',125],
['RD-2','c',127],
['RD-3','a',120],
['RD-3','b',140],
['RD-5','a',120]]
如果每个子列表的第一个元素相同,我想在列表中创建单独的子列表。输出应该如下所示
finallist=[
[['RD-2','a',120],['RD-2','b',125],['RD-2','c',127]],
[['RD-3','a',120],['RD-3','b',140]],
['RD-5','a',120]]
我尝试在 forloop 中使用 if 条件,但它不起作用。 帮帮我
请您参考如下方法:
使用 itertools.groupby
例如:
from itertools import groupby
lst=[['RD-2','a',120],['RD-2','b',125],['RD-2','c',127],['RD-3','a',120],['RD-3','b',140],['RD-5','a',120]]
res = [list(v) for i, v in groupby(lst, lambda x: x[0])] #GroupBy first element.
print(res)
输出:
[[['RD-2', 'a', 120], ['RD-2', 'b', 125], ['RD-2', 'c', 127]], [['RD-3', 'a', 120], ['RD-3', 'b', 140]], [['RD-5', 'a', 120]]]
