首页 > 解决方案 > 从字典列表中提取数据

问题描述

嗨,我想将字典列表转换为列表中某些项目的单个字典:我有:

>>> print(dct_lst)
[{'id': 456, 'name': 'bar'}, {'id': 789, 'name': 'baz'}, {'id': 123, 'name': 'foo'}]

我想:

dct={'bar':None
     'baz':None
     'foof':None}

我已经尝试过(在其他组合中):

>>> for i in dct_lst['name']:
...     btns[i]=None
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str

我如何得到我需要的东西?

标签: pythonlistdictionary

解决方案


考虑使用字典理解

>>> dct_lst = [{'id': 456, 'name': 'bar'}, {'id': 789, 'name': 'baz'}, {'id': 123, 'name': 'foo'}]
>>> dct = {d['name']: None for d in dct_lst if 'name' in d}
>>> dct
{'baz': None, 'foo': None, 'bar': None}

推荐阅读