gpt4 book ai didi

Python:迭代字典时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:50 25 4
gpt4 key购买 nike

所以,我一直在编写这个简单的Python程序来熟悉字典。基本上,它作为一个数据库运行,您可以在其中进行搜索。如果您的条目在字典键中,它会显示有关该条目的信息。

Family = {'Jim' : ['cool guy', 'has facial hair'],
'Ned' : ['hot stuff', ' wears Tees']}

query = input("Look up database on whom? > ")
for (name, info) in Family.items():
if name in query or name.lower() in query:
print("{} is {}".format(name, info))

这 ^ 有效。但是,当我尝试添加 ELSE 子句来处理不存在的条目时,我得到了这个。

else:
print ('Value not found!')

它打印未找到的值!在提出值(value)之前多次。如果我尝试添加“返回开始”功能,它甚至不会显示注册值。我知道这是因为它是一个循环并逐一迭代字典;就像 1)jim 是 true 那么 2) ned 是 false。

如何改进此代码以使其: - 能够给出有关不存在的条目的错误,然后重新启动程序。谢谢。

最佳答案

您需要注意代码中的大小写不敏感问题。在继续之前遍历列表以确保该名称存在:

Family = {'Jim' : ['cool guy', 'has facial hair'],
'Ned' : ['hot stuff', ' wears Tees']}

names = [name.lower() for name in Family]
def find(query):
if query.lower() in names:
info = [Family[n] for n in Family if n.lower() == query.lower()]
print('{} is {}'.format(
query, info
))
else:
print('{} not found'.format(query))

如果您尝试使用以下示例:

find('Ned')
find('ned')
find('no ned')

您将得到以下结果:

Ned is [['hot stuff', ' wears Tees']]
ned is [['hot stuff', ' wears Tees']]
no ned not found

关于Python:迭代字典时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30722953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com