2017-05-25 17 views
-1

我有一個列表的列表組列表

list1 = [['1997', 0.56], ['1998', 0.62], ['1997', 0.78], ['1998', 0.23]] 

我需要將它們分組,以便新的名單看起來像:

list2 = [['1997',0.56,0.78], ['1998', 0.62, 0.23]] 

我怎樣才能做到這一點使用蟒蛇?

+1

編輯向我們展示了到目前爲止你已經嘗試過什麼問題。 –

+0

相關:https://stackoverflow.com/questions/39650110/group-list-of-tuples-by-item –

回答

1

您可以在list comprehension內使用groupbyitertools模塊這樣的例子:

from itertools import groupby 

list1 = [['1997', 0.56], ['1998', 0.62], ['1997', 0.78], ['1998', 0.23]] 

result = [[k] + [j[1] for j in list(v)] for k,v in groupby(sorted(list1, key=lambda x: x[0]), lambda x: x[0])] 

print(result) 

輸出:

[['1997', 0.56, 0.78], ['1998', 0.62, 0.23]] 
+0

這是否只工作,如果我只有一個項目列表中,如果我有超過1第 列表1 = [['1997',0.56,0.67],['1998',0.62,0.23],['1997',0.78,0.65],['1998',0.23,0.51]] – StarLord

+0

Yes this如果您的子列表中只有2個元素,答案將起作用。如果您需要其他解決方案或擴展程序,請修改您的問題並添加新的查詢,然後立即通知我。我將編輯我的答案以解決您的新問題。 –