gpt4 book ai didi

python - 我想在代码上有一个 'else' 语句,使用 'for' 和 'if' 语句迭代列表以查找作为字典键的项目

转载 作者:行者123 更新时间:2023-12-01 08:00:09 25 4
gpt4 key购买 nike

我使用“for”语句,然后使用“if”语句从字典中的列表中查找项目。我希望“好奇,告诉我更多”只打印一次。

以下是我期望该程序的工作方式:

input: i have a cat
output: Cats are the greatest animals in the world

Input:i do not like dogs
Output: Dogs are boring

input:i love my pet
Output:Curious, tell me more

我当前的代码:

Dict_1 = {'cat':'Cats are the greatest animals in the world','dog':'Dogs are boring'}
query = 0
while (not query=='quit'):
query = input().split()
for i in query:
if i in Dict_1:
query = Dict_1[i]
print(query)
else:
print('Curious, tell me more')

最佳答案

query = input().split() ,你正在转向query到一个列表中。例如。如果用户输入 cat dog ,查询将是 ['cat','dog'] .

所以,不要检查 query=='quit' (这永远不会是真的,因为 query 是一个列表而不是字符串),您应该检查查询是否包含 'quit''quit' in query .

如果您不想打印'Curious, tell me more'当用户退出时,则使用无限 while循环,并在 'quit' 时中断循环已读。

您可以使用集合交集生成包含在查询中找到的命令的集合:commands_found = set(Dict_1.keys()) & set(query)

这是一个有效的实现:

Dict_1 = {'cat':'Cats are the greatest animals in the world','dog':'Dogs are boring'}
query = []
while True:
query = input().split()
if 'quit' in query:
break
commands_found = set(Dict_1.keys()) & set(query)
if commands_found:
for i in commands_found: print(Dict_1[i])
else:
print('Curious, tell me more')

请注意,我正在初始化 query现在作为列表 query = [] 。输出:

I like my cat
Cats are the greatest animals in the world
I like my cat and dog
Cats are the greatest animals in the world
Dogs are boring
I like my racoon
Curious, tell me more
I want to quit

关于python - 我想在代码上有一个 'else' 语句,使用 'for' 和 'if' 语句迭代列表以查找作为字典键的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55773600/

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