在python中搜索和更新字典列表中的字典

时间:2016-01-05 22:19:27

标签: python json list search dictionary

所以我知道这一点: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”/“性能”/代码清晰度等。

1 个答案:

答案 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