我有列表列表,二级列表的每个第一项都可以看作是一种关于其性质的元信息。
# simple sample, real data are much more complex, but it can be schematized as this one
L = [('n0', 1), ('n1', 4), ('n1', 2), ('n2', 5)]
性质可在此处获得:
natures = list(set(zip(*L)))[0]
我需要建立另一个列表,其中每个不同的可能组合按每个“自然”的连续分组,(即natures
)
结果应该来自下面的示例
R = [
[('n0', 1), ('n1', 4), ('n2', 5)],
[('n0', 1), ('n1', 2), ('n2', 5)]
]
我认为这可以使用一些 itertools 包巧妙地完成,但我完全迷失在其中,有人可以帮助我使用正确的 itertools 东西(groupby
也许product
?)
最好的祝福