想根据输入的姓名去列表里的字典做判断查询并打印,列表里有多个字典,每次查不到结果,判断也会把查询不到的结果打印出来,当查不到值的时候,会打印多次,请问有什么方式可以解决吗?
代码:
list1 = [{"name":"小王","age":19},{"name":"小明","age":18}]
def a():
name1 = input("请输入查询的姓名:")
for i in list1:
if name1 in i.values() :
print(list1[list1.index(i)])
else:
print("不在")
a()
运行结果:
1.请输入查询的姓名:小明
不在
{'name': '小明', 'age': 18}
2.请输入查询的姓名:xiao
不在
不在
list1 = [{"name":"小王","age":19},{"name":"小明","age":18}]
def a():
name1 = input("请输入查询的姓名:\n")
print(1)
for i in list1:
if name1 in i.values() :
print(list1[list1.index(i)])
print("在")
break
else:
print("不在")
a()
因为你用的for循环啊,每个值都要遍历一遍,加个结束条件
推荐你用一个flag去判断
list1 = [{"name":"小王","age":19},{"name":"小明","age":18}]
flag = 0
def a(flag):
name1 = input("请输入查询的姓名:\n")
for i in list1:
if name1 in i.values() :
flag = 1
break
else:
flag = 0
if flag==1:
print("在")
else:
print("buzai")
a(flag)
欢迎关注采纳哟😁