在这里,我有一个字典列表,我需要使用值找到对象。
people = [
{'name': mifta}
{'name': 'khaled', 'age':30},
{'name': 'reshad', 'age':31}
]
我想通过"年龄"键找到值为 30 的位置。我可以通过以下方式做到这一点
for person in people:
if person.get('age'):
if person['age'] == 30:
有没有更好的方法来做到这一点,而没有很多如果不是其他的?
你可以只使用一次dict.get()
而不person['age']
,它允许你在缺少键时提供默认值,所以你可以试试这个:
字典.get
如果键在字典中,则返回键的值,否则为默认值。如果 默认值不给出,默认为 None,因此此方法永远不会 引发密钥错误
people = [
{'name': 'mifta'},
{'name': 'khaled', 'age':30},
{'name': 'reshad', 'age':31}
]
for person in people:
if person.get('age',0)==30:
print(person)
如果你想避免如果..否则,您可以使用 lambda 函数。
fieldMatch = filter(lambda x: 30 == x.get('age'), people)
或者还可以使用列表推导来获取列表中的名称。
names = [person['name'] for person in people if person.get('age') == 30]