You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 16:46:04