我在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 - 从词典列表中创建字典,但不同.
您也可以使用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)