Python字典遍历输出好友个性化消息时出现KeyError问题求助
问题解决:遍历字典触发KeyError的修复
错误原因
你遇到的KeyError核心问题是:字典的键是全小写格式(比如'yousuf'),但你在获取语言时用了name.title()生成的首字母大写字符串('Yousuf')作为键去查找,字典里根本不存在这个键,所以报错。
修复方案
直接使用遍历得到的原始name变量作为字典的键,因为name本身就是字典里存在的小写键值,不需要转格式。同时可以用Python的f-string让字符串拼接更简洁。
修正后的完整代码
favourate_language = { 'yousuf': 'python', 'jazam': 'C', 'abu talib': 'C++', 'abu hurayrah': 'Go', 'umer': 'R', 'kasim': 'javascript' } # 遍历输出所有原始姓名(可选步骤) for name in favourate_language.keys(): print(name) # 发送个性化消息 friends = ['yousuf', 'umer'] for name in favourate_language.keys(): print(name.title()) if name in friends: # 用原始name作为键,同时用f-string简化拼接 print(f'Assalamalaikum, {name.title()}! I see your favourite language is {favourate_language[name]}!')
额外说明(匹配你的预期输出)
你给出的预期输出里出现了原字典没有的姓名(Muhammed、Ali),如果需要实现这个效果,需要先把这些用户添加到字典和好友列表中:
# 新增用户到字典 favourate_language.update({ 'muhammed': 'C', 'ali': 'javascript' }) # 更新好友列表 friends = ['yousuf', 'umer', 'muhammed', 'ali']
运行后就能得到你想要的输出效果。
内容的提问来源于stack exchange,提问作者Farhan Anwar
相关产品推荐
相关产品推荐

