如何在键不一致的字典列表中查找值



在这里,我有一个字典列表,我需要使用值找到对象。

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]

最新更新