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

Python嵌套字典随机取值报错KeyError: 'colors',求助解决

问题分析与解决

你遇到的KeyError: 'colors'是因为外层字典breeds的键是猫咪品种名('bengal'、'tabbycat'),并没有'colors'这个键。你需要先通过选中的品种,找到对应的子字典,再从中获取颜色、长度这些信息。

修正后的代码

import random

breeds = {
    'bengal': {
        'colors' : ['red', 'black', 'grey'],
        'length': ['short', 'medium', 'long'],
        'pattern': ['spotted', 'marbled']
        },
    'tabbycat': {
        'colors' : ['grey', 'blue', 'silver'],
        'length' : ['short', 'medium', 'long'],
        'pattern' : ['mackeral', 'classic']
        }
    }

# 随机选一个品种
breed = random.choice(list(breeds))
# 通过品种名获取该品种的详细信息字典
breed_info = breeds[breed]
# 从详细信息里随机选颜色、长度、花纹
color = random.choice(breed_info['colors'])
fur_length = random.choice(breed_info['length'])
pattern = random.choice(breed_info['pattern'])

print(f"品种:{breed.title()}")
print(f"颜色:{color.title()}")
print(f"被毛长度:{fur_length.title()}")
print(f"花纹:{pattern.title()}")

关键改动说明

  • 新增breed_info = breeds[breed]:用选中的品种名作为键,从外层字典取出对应的子字典,这个子字典里才包含'colors'、'length'、'pattern'这些键。
  • 后续获取颜色等信息时,从breed_info里取,而不是直接从外层的breeds字典取。

内容的提问来源于stack exchange,提问作者IHateTheLearningProcess

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:55:29