所以我知道这一点:Python list of dictionaries search
回答了我问题的第一部分。
然而,我的问题是这样的:我想直接更新搜索字典,而不是简单地检索它。
更具体地说,我有一个词典列表。每个字典都有一个“列表”键,其值是另一个列表。一旦找到字典,我想更新该列表。
每个词典的结构如下: {“name”:“whatever”,“display”:“whoever”,“list”:[x,y,z]}
所以示例列表将是:
[
{"name": "whatever", "display":"whoever", "list": [x, y, z]},
{"name": "whatever2", "display":"whoever2", "list": [x2, y2, z2]},
{"name": "whatever3", "display":"whoever3", "list": [x3, y3, z3]}
]
我想检索名称为“whatever2”的字典,并在“list”中添加a2。
最好的方法是什么?
然而,“最佳”可以衡量“python-ness”/“性能”/代码清晰度等。答案 0 :(得分:1)
L = [
{"name": "whatever", "display":"whoever", "list": [x, y, z]},
{"name": "whatever2", "display":"whoever2", "list": [x2, y2, z2]},
{"name": "whatever3", "display":"whoever3", "list": [x3, y3, z3]}
]
for d in L:
if d['name'] != 'whatever2': continue
d['list'].append('a2')
break # unless you could have multiple dictionaries in your list with the same name