鱼C论坛

 找回密码
 立即注册
查看: 1974|回复: 3

字典哪里错了

[复制链接]
发表于 2023-5-20 22:10:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:NiuNiu是Java,NiuMei是Python,Niukele是CPP,NiuNeng是Python,Tony是Java,Anna是CPP,Allen是CPP,输入语言名字,输出人名或者nobody

这里是我的代码
dic = {"NiuNiu":"Java","NiuMei":"Python","Niukele":"CPP","NiuNeng":"Python","Tony":"Java","Anna":"CPP","Allen":"CPP"}
name = input()
dic[name]
我看到评论里正确的代码是
dic = {"Java":["NiuNiu", "Tony"], "Python":["NiuMei","NiuNeng"],"CPP":["Niukele","Anna","Allen"]}
lan = input()
print(dic[lan] if lan in list(dic.keys()) else "Nobody")
人名也不是重复的,人名为什么不能当key呢
我这么列举法的字典,怎么改才对
dic[name]这一步有错吗,输出是空
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-20 22:10:47 | 显示全部楼层
问题在于你的字典中使用人名作为key,而题目要求的是根据语言名字输出人名,所以应该使用语言名字作为key。正确的字典应该是:
dic = {"Java": ["NiuNiu", "Tony"], "Python": ["NiuMei", "NiuNeng"], "CPP": ["Niukele", "Anna", "Allen"]}
这样,当输入语言名字时,可以直接通过字典的key来获取对应的人名列表,然后再进行输出。而在你的代码中,使用人名作为key,当你输入语言名字时,无法直接从字典中获取对应的人名,所以输出为空。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-20 22:11:21 | 显示全部楼层
问题在于你是用人名作为字典的键,而应该用编程语言名作为键,所以在查询时,输入NiuNiu等人名无法找到对应的值。另外,如果要用人名作为键,需要将重名的人名用列表区分。

正确的代码应该是:
dic = {"Java":["NiuNiu", "Tony"], "Python":["NiuMei","NiuNeng"], "CPP":["Niukele","Anna","Allen"]}
lan = input()
if lan in dic:
    print(dic[lan])
else:
    print("Nobody")
希望能解答疑问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-20 22:39:09 | 显示全部楼层
根据您提供的代码,包含两个问题导致无法输出正确结果。

1. 字典键类型应为语言名字,而不是人名,因为同一个人可能会使用不同的编程语言,而一个编程语言只能被一种语言使用。因此,第二个示例中的 `dic` 定义是更准确的。

2. 第 5 行中的 `name` 变量需要包含字典的有效键,而不是人名。在输入时,您只能输入该人使用的编程语言,例如:"Java","Python" 或 "CPP"。然后,您需要使用这个输入来查找字典中与之相关的人名。如果输入的语言不再字典中,则输出 "nobody"。

以下是修复后的代码:
dic = {"Java": ["NiuNiu", "Tony"], "Python": ["NiuMei", "NiuNeng"], "CPP": ["Niukele", "Anna", "Allen"]}
language = input()
if language in dic:
    print(", ".join(dic[language]))
else:
    print("nobody")

这样,当您提供语言作为输入时,程序将输出使用该语言的所有人名,如果没有人使用该语言,则打印 "nobody"。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 12:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表