我有一个列表,其中包含列表中的列表。内部列表包含两个项目,inner_list [0]是标识符/键,inner_list [1]是对应的值。我想将它们放入一个字典中,其中共享相同键的值将被附加到同一个键中。
一个例子:
list = [['Jan', 'Jim'], ['Feb', 'Maggie'], ['Jan', 'Chris'], ['Sept', 'Joey'],..['key', 'value']]
我正在寻找的结果:
Jan = ['Jim', 'Chris']
Feb = ['Maggie']
Sept = ['Joey']
我能用Python优雅地做到这一点吗?
答案 0 :(得分:6)
您可以在此处使用collections.defaultdict
:
>>> from collections import defaultdict
>>> lis = [['Jan', 'Jim'], ['Feb', 'Maggie'], ['Jan', 'Chris'], ['Sept', 'Joey'],['key', 'value']]
>>> dic = defaultdict(list)
>>> for k, v in lis:
... dic[k].append(v)
>>> dic['Jan']
['Jim', 'Chris']
>>> dic['Feb']
['Maggie']
>>> dic['Sept']
['Joey']
答案 1 :(得分:0)
你可以使用setdefault
,所以:
lis = [['Jan', 'Jim'], ['Feb', 'Maggie'], ['Jan', 'Chris'],
['Sept', 'Joey'], ['key', 'value']]
dic = {}
for key, val in lis:
dic.setdefault(key, []).append(val)