我找到了更好的做相反,而不是做一個列表,然後是一個字典,我做了字典,然後是一個列表。
輸入:
in_list = [[1, 'A'], [1, 'B'],[1, 'D'], [2, 'A'],[2,'D'], [3, 'C'], [4, 'D'], [5, 'B'], [6, 'D']]
代碼:
mydict = {}
for sublist in in_list:
if sublist[0] in mydict.keys():
mydict[sublist[0]] = [*mydict[sublist[0]],sublist[1]]
else:
mydict[sublist[0]] = sublist[1]
輸出:
>>> mydict
{1: ['A', 'B', 'D'], 2: ['A', 'D'], 3: 'C', 4: 'D', 5: 'B', 6: 'D'}
做一個簡單的列表,從詞典:
mylist = list(mydict.items())
輸出:
>>> mylist
[(1, ['A', 'B', 'D']), (2, ['A', 'D']), (3, 'C'), (4, 'D'), (5, 'B'), (6, 'D')]
讓另一個列表,從詞典:
mylist = = [[k,v] for k,v in mydict.items()]
同:
mylist = []
for key, value in mydict.items():
輸出:
>>> mylist
[[1, ['A', 'B', 'D']], [2, ['A', 'D']], [3, 'C'], [4, 'D'], [5, 'B'], [6, 'D']]
是訂購的輸入列表 – Serge
如果在外部列表的末尾有一個'[1,'C']'?應該把它與前兩個分組嗎?這個問題有點低估。 –
我已經指定它更清楚現在採取戰利品@Serge – void