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

Python字典值打印方法及键匹配无输出问题排查

解决字典值打印无输出的问题

你的代码存在两个核心问题,导致输入apple时没有输出:

  1. 语法错误:print:("calories: ",str(dict1[key])) 中 print 后多了一个冒号,这会直接导致语法错误,程序无法执行打印逻辑。
  2. 键大小写不匹配隐患:你对输入做了casefold()转小写,但字典内部分键(比如sweet Cherries)包含大写字母,后续如果输入这类带大写的项,会因为匹配失败无法输出。

修正方案一(高效匹配,推荐)

直接构建一个键全为小写的映射字典,无需遍历即可快速匹配:

dict1={
    "apple":130,
    "avocado":50,
    "banana":110,
    "cantaloupe":50,
    "grapefruit":60,
    "grapes":90,
    "honeydew melon":50,
    "kiwifruit":90,
    "lemon":15,
    "lime":20,
    "nectarine":60,
    "orange":80,
    "peach":60,
    "pear":100,
    "pineapple":50,
    "plums":50,
    "sweet Cherries":100,
    "tangerine":50,
    "watermelon":80
}
# 生成键全为小写的新字典
lowercase_dict = {key.casefold(): val for key, val in dict1.items()}
a = input("item: ").casefold()

# 安全获取值,不存在则提示
calories = lowercase_dict.get(a)
if calories is not None:
    print(f"calories: {calories}")
else:
    print("Item not found")

修正方案二(基于原字典遍历)

如果不想额外创建字典,可在遍历时将原键转小写匹配,同时添加循环终止逻辑提升效率:

dict1={
    # 原字典内容不变
}
a=input("item: ").casefold()
for key in dict1:
    if key.casefold() == a :
        print("calories: ", str(dict1[key]))
        break  # 找到匹配项后立即退出循环
else:
    # 循环正常结束(未找到匹配项)时执行
    print("Item not found")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:15:44