我找到了更好的做相反,而不是做一个列表,然后是一个字典,我做了字典,然后是一个列表。
输入:
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