如何找出元素列表中的特定键是否在任何字典中?

时间:2015-02-11 00:41:59

标签: python list search dictionary

listofdict = [{'name':"John",'surname':"Adelo",'age':15,'adress':"1st Street 45"},{'name':"Adelo",'surname':"John",'age':25,'adress':"2nd Street 677"},...]

我想检查字典中是否有名字John的人,如果有的话:是的,如果不是:False。这是我的代码:

def search(name, listofdict):
    a = None
    for d in listofdict:
        if d["name"]==name:
            a = True
        else:
            a = False
    print a

然而,这不起作用。如果name = John,则返回False,但是对于name = Adelo,它返回True。感谢。

2 个答案:

答案 0 :(得分:2)

您需要break之后a = True

如果目标键不在a最后字典中,listofdict始终为假。

顺便说一句,这更清洁了:

def search(name, listofdict):
    for d in listofdict:
        if d["name"]==name:
            return True
    return False

答案 1 :(得分:2)

Python提供的逻辑有助于避免循环的所有复杂问题。例如:

def search(name, listofdict):
    return any( d["name"]==name for d in listofdict )