这里,我有一个字典列表,我需要使用值找到对象。
people = [
{'name': mifta}
{'name': 'khaled', 'age':30},
{'name': 'reshad', 'age':31}
]
我想找到年龄'值为30的键。我可以通过以下方式执行此操作
for person in people:
if person.get('age'):
if person['age'] == 30:
有没有更好的方法可以做到这一点,没有其他很多?
答案 0 :(得分:2)
您可以在没有dict.get()
的情况下使用person['age']
一次,如果密钥丢失,您可以提供默认值,因此您可以尝试:
如果key在字典中,则返回key的值,否则返回default。如果 默认情况下没有给出,默认为None,所以这个方法永远不会 引发KeyError
people = [
{'name': 'mifta'},
{'name': 'khaled', 'age':30},
{'name': 'reshad', 'age':31}
]
for person in people:
if person.get('age',0)==30:
print(person)
答案 1 :(得分:1)
如果你想避免if..else你可以使用lambda函数。
fieldMatch = filter(lambda x: 30 == x.get('age'), people)
或使用列表理解来获取列表中的名称。
names = [person['name'] for person in people if person.get('age') == 30]