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

如何编写Python程序从多键字典中查询指定动物对应的ID值

代码错误说明

你的代码存在3个核心逻辑问题,无法实现需求:

  • 匹配范围错误:animal_dict.values()返回的是三个顶层嵌套字典(动物名字典、ID字典、园区位置字典),并非具体的动物名称字符串,拿用户输入的动物名和这三个字典对象做匹配,永远得不到正确的匹配结果。
  • 取值路径错误:animal_dict的顶层键只有Animal、ID Number、Zoo Location三个,没有任何以动物名直接作为键的条目,哪怕匹配逻辑写对,直接调用animal_dict[enter_animal_name]也会触发KeyError报错。
  • 缺失关联逻辑:当前字典的存储规则是相同数字索引对应同一条记录的不同属性,比如Animal下索引0对应长颈鹿,ID Number下索引0就是长颈鹿的ID,你的代码没有实现跨子字典的同索引关联逻辑。
正确实现方案

先预构建动物名到ID的映射关系,再做查询判断,代码如下:

animal_dict = {
    'Animal': {
        0: 'Giraffe',
        1: 'Kangaroo',
        2: 'Koala',
        3: 'Lion',
        4: 'Walrus'
    },
    'ID Number': {
        0: '121',
        1: '234',
        2: '673',
        3: '543',
        4: '134'
    },
    'Zoo Location': {
        0: 'Chicago',
        1: 'New York',
        2: 'Seattle',
        3: 'Tulsa',
        4: 'Santa Monica'
    }
}

# 构建动物名 -> ID的查询映射
animal_to_id = {}
for idx, name in animal_dict['Animal'].items():
    animal_to_id[name] = animal_dict['ID Number'][idx]

enter_animal_name = input("Enter Animal Name: ")
if enter_animal_name in animal_to_id:
    print(f"Animal ID Number: {animal_to_id[enter_animal_name]}")
else:
    print("Animal does not exist in database")
效果说明
  • 输入字典内存在的动物名(如Lion),仅返回对应ID543,不会输出园区位置信息
  • 输入不存在的动物名,直接返回不存在的提示
  • 预构建映射的方式查询效率更高,数据量较大时优势更明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:57:17