Tru*_*ran 2 python dictionary list
我有一个格式为的字典列表:
mylist1 = [{'model': 'one'}, {'color': 'blue'}, {'age': 23}]
有没有办法可以根据字典的键查找字典?对于我想做的事情(伪代码):
mylist1['model'] #should return {'model': 'one'}
我不这样做的原因mylist[0]['model']是因为列表元素并不总是按这个顺序。
折叠你的字典。
d = {k : v for d in mylist1 for k, v in d.items()}
d
{'age': 23, 'color': 'blue', 'model': 'one'}
Run Code Online (Sandbox Code Playgroud)
现在,只需查找常数O(1)时间即可。
d['model']
'one'
Run Code Online (Sandbox Code Playgroud)
通过在同一个列表中保留多个不相交的dicts,您首先就违背了它们的目的。
如果您有多个具有相同键的可能值,请使用 a dictof lists。
d = {}
for dct in mylist1:
for k, v in dct.items():
d.setdefault(k, []).append(v)
d
{'age': [23], 'color': ['blue'], 'model': ['one']}
Run Code Online (Sandbox Code Playgroud)
支持具有相同键的多个值,而不会像前一个那样覆盖条目。
| 归档时间: |
|
| 查看次数: |
30997 次 |
| 最近记录: |