使用随机变量检查字典子键值时遇KeyError: 'gender'问题求助
修复方案
你的代码出现KeyError: "gender"的核心原因是:data字典的顶层键是"escritorio"、"viento"这类单词,根本不存在"gender"这个顶层键,你错误地颠倒了字典的访问层级。
正确的逻辑步骤是:
- 先用随机选中的
random_data(即某个单词键)获取对应的子字典 - 再从子字典中取出
"gender"的值进行判断
修改后的代码如下:
import random data = { #MALE "escritorio": { "gender": "male", }, "viento": { "gender": "male", }, #FEMALE "silla": { "gender": "female", }, "mesa": { "gender": "female", }, } # 随机选中一个单词键 random_data = random.choice(list(data)) # 获取该单词对应的gender值 word_gender = data[random_data]["gender"] if word_gender == "male": print(f"{random_data}: word is Male") elif word_gender == "female": print(f"{random_data}: word is Female") else: print(f"{random_data}: unknown gender") # 处理意外情况的兜底逻辑
额外优化建议:
- 使用f-string让打印语句更简洁易读
- 添加
elif和else分支,避免当出现非"male"/"female"的gender值时逻辑出错
内容的提问来源于stack exchange,提问作者Evangelos Dellas
相关产品推荐
相关产品推荐

