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

时间:2017-04-04 05:14:08

标签: python python-2.7 dictionary

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

people = [
   {'name': mifta}
   {'name': 'khaled', 'age':30},
   {'name': 'reshad', 'age':31}
]

我想找到年龄'值为30的键。我可以通过以下方式执行此操作

for person in people:
  if person.get('age'):
    if person['age'] == 30:

有没有更好的方法可以做到这一点,没有其他很多?

2 个答案:

答案 0 :(得分:2)

您可以在没有dict.get()的情况下使用person['age']一次,如果密钥丢失,您可以提供默认值,因此您可以尝试:

dict.get

  

如果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]