1 回答

TA贡献1998条经验 获得超6个赞
您可以使用以每个列表的第一个元素作为键的字典,并在每次在列表列表中遇到时扩展列表,例如:
data = [
['a','apple',1],
['b', 'banana', 0],
['a', 'artichoke', 'antenna'],
['b', 'brocolli', 'baton'],
['c', None, 22]
]
然后我们:
d = {}
for k, *vals in data:
d.setdefault(k, []).extend(vals)
d = collections.OrderedDict()如果完全有必要保证键的顺序如列表中所示,您可以选择在此处使用。
这给了你一个d:
{'a': ['apple', 1, 'artichoke', 'antenna'],
'b': ['banana', 0, 'brocolli', 'baton'],
'c': [None, 22]}
如果您然后想解压回列表列表(尽管它可能更有用 a dict),那么您可以这样做:
new_data = [[k, *v] for k, v in d.items()]
要得到:
[['a', 'apple', 1, 'artichoke', 'antenna'],
['b', 'banana', 0, 'brocolli', 'baton'],
['c', None, 22]]
添加回答
举报