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。感谢。
答案 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 )