根据python中的条件将子列表单独分组在列表内

lea*_*ent 4 python python-2.7

我有子列表

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]]
Run Code Online (Sandbox Code Playgroud)

我想根据每个子列表的第一个元素(如果相同)在列表中创建单独的子列表。输出应该如下所示

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]]
Run Code Online (Sandbox Code Playgroud)

我尝试在 forloop 中使用 if 条件,但它不起作用。帮我

Rak*_*esh 7

使用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)
Run Code Online (Sandbox Code Playgroud)

输出:

[[['RD-2', 'a', 120], ['RD-2', 'b', 125], ['RD-2', 'c', 127]], [['RD-3', 'a', 120], ['RD-3', 'b', 140]], [['RD-5', 'a', 120]]]
Run Code Online (Sandbox Code Playgroud)