将字典列表转换为字典

Tim*_*Tim 1 python dictionary

我在Python中有一个字典列表

[
{'id':'1', 'name': 'a', 'year': '1990'},
{'id':'2', 'name': 'b', 'year': '1991'},
{'id':'3', 'name': 'c', 'year': '1992'},
{'id':'4', 'name': 'd', 'year': '1993'},
]
Run Code Online (Sandbox Code Playgroud)

我想把这个列表变成一个字典词典,其中键是值name.请注意,列表中的不同项目具有不同的值name.

{
'a': {'id':'1', 'year': '1990'},
'b': {'id':'2', 'year': '1990'},
'c': {'id':'3', 'year': '1990'},
'd': {'id':'4', 'year': '1990'}
}
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳方法是什么?谢谢.

这类似于Python - 从词典列表中创建字典,但不同.

Tan*_*lam 9

您也可以使用Dictionary Comprehension实现此目的.

data = [
        {'id':'1', 'name': 'a', 'year': '1990'},
        {'id':'2', 'name': 'b', 'year': '1991'},
        {'id':'3', 'name': 'c', 'year': '1992'},
        {'id':'4', 'name': 'd', 'year': '1993'},
       ]

print {each.pop('name'): each for each in data}  
Run Code Online (Sandbox Code Playgroud)

结果: -

{'a': {'year': '1990', 'id': '1'}, 
 'c': {'year': '1992', 'id': '3'}, 
 'b': {'year': '1991', 'id': '2'}, 
 'd': {'year': '1993', 'id': '4'}}
Run Code Online (Sandbox Code Playgroud)