【发布时间】:2016-08-10 05:50:07
【问题描述】:
我有以下字典列表。
people = [
{'name': "Tom", 'age': 10},
{'name': "Mark", 'age': 5},
{'name': "Pam", 'age': 7}
]
就性能而言,这将是在 dicts 列表中搜索的最优化方式。以下是一些不同的方法:
next((item for item in dicts if item["name"] == "Pam"), None)
或
filter(lambda person: person['name'] == 'Pam', people)
或
def search(name):
for p in people:
if p['name'] == name:
return p
或
def search_dictionaries(key, value, list_of_dictionaries):
return [element for element in list_of_dictionaries if element[key] == value]
也欢迎任何其他方法。谢谢。
【问题讨论】:
-
你这样做一次就完事了吗?如果是这样,那么一旦找到该物品就返回是最有意义的。如果不是,请使用可重复用于后续搜索的映射。
标签: python list dictionary