У меня есть следующий список dicts.Самый эффективный способ поиска в списке dicts
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]
Любой другой метод также приветствуется. Благодарю.
Вы делаете это один раз и все? Если это так, а возвращение, как только вы нашли, предмет имеет наибольший смысл. Если нет, используйте сопоставление, которое можно повторно использовать для последующих поисков. –