我如何从元组列表中创建字典?

Wre*_*eCs 3 python dictionary list

我将如何从这样的列表中创建字典:

list = [('a', [10,3]), ('a', [30,20]), ('b', [96,45]), ('b', [4,20])]
Run Code Online (Sandbox Code Playgroud)

我想要的结果是:

dict = { 'a':[10,3,30,20], 'b':[96,45,4,20] }
Run Code Online (Sandbox Code Playgroud)

iCo*_*dez 5

你可以使用collections.defaultdict这个:

>>> from collections import defaultdict
>>> lst = [('a', [10,3]), ('a', [30,20]), ('b', [96,45]), ('b', [4,20])]
>>> dct = defaultdict(list)
>>> for x, y in lst:
...     dct[x] += y
...
>>> dct
defaultdict(<class 'list'>, {'a': [10, 3, 30, 20], 'b': [96, 45, 4, 20]})
>>>
Run Code Online (Sandbox Code Playgroud)

或者,如果您想避免导入,请尝试dict.setdefault:

>>> lst = [('a', [10,3]), ('a', [30,20]), ('b', [96,45]), ('b', [4,20])]
>>> dct = {}
>>> for x, y in lst:
...     dct.setdefault(x, []).extend(y)
...
>>> dct
{'a': [10, 3, 30, 20], 'b': [96, 45, 4, 20]}
>>>
Run Code Online (Sandbox Code Playgroud)