一尘不染

字典搜索的Python列表

python

假设我有这个:

[
{"name": "Tom", "age": 10},
{"name": "Mark", "age": 5},
{"name": "Pam", "age": 7}
]

并通过搜索“ Pam”作为名称,我想检索相关的字典: {name: "Pam", age: 7}

如何实现呢?


阅读 536

收藏
2020-02-18

共1个答案

一尘不染

你可以使用生成器表达式:

>>> dicts = [
...     { "name": "Tom", "age": 10 },
...     { "name": "Mark", "age": 5 },
...     { "name": "Pam", "age": 7 },
...     { "name": "Dick", "age": 12 }
... ]

>>> next(item for item in dicts if item["name"] == "Pam")
{'age': 7, 'name': 'Pam'}

如果你需要处理不存在的商品,则可以按照用户Matt的 建议进行操作,并使用稍有不同的API提供默认值:

next((item for item in dicts if item["name"] == "Pam"), None)
2020-02-18