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

Python中如何将用户输入值与字典中的值进行比较?

检查输入数字是否存在于字典的列表值中

你的原代码存在几个逻辑和语法问题,导致无法正确实现需求,以下是修正方案:

原代码问题分析

  • 遍历字典时,直接for key, value in my_dict会触发错误,因为字典默认遍历的是键,要获取键值对需使用my_dict.items()
  • 用户输入的内容是字符串类型,而字典中的值是整数,直接比较永远不会相等,需要将输入转为整数
  • 把输入语句放在循环内会导致每次循环都要求用户输入,逻辑错误,应该先获取一次输入再进行检查

修正后的代码(基础版)

my_dict = {'apple': [900, 190], 'orange': [1300, 90], 'pineapple': [550, 13], 'carrot': [600, 60], 'cucumber': [900, 30], 'egg plant': [1100, 20], 'zucchini': [1300, 10], 'garlic': [300, 70]}

# 获取用户输入并转换为整数,同时处理非数字输入的情况
try:
    usernumber = int(input('Input your number: '))
except ValueError:
    print("请输入有效的数字")
    exit()

# 初始化标记变量,记录是否找到目标数字
is_found = False

# 遍历字典中所有的列表值
for value_list in my_dict.values():
    if usernumber in value_list:
        is_found = True
        break  # 找到后立即停止遍历,提升效率

# 根据结果输出
print("Equal" if is_found else "Not equal")

更简洁的实现(使用any()函数)

利用Python的any()函数可以快速判断是否存在符合条件的元素,代码更紧凑:

my_dict = {'apple': [900, 190], 'orange': [1300, 90], 'pineapple': [550, 13], 'carrot': [600, 60], 'cucumber': [900, 30], 'egg plant': [1100, 20], 'zucchini': [1300, 10], 'garlic': [300, 70]}

try:
    usernumber = int(input('Input your number: '))
except ValueError:
    print("请输入有效的数字")
    exit()

# 检查是否有任意一个列表包含输入的数字
if any(usernumber in lst for lst in my_dict.values()):
    print("Equal")
else:
    print("Not equal")

当用户输入190时,两段代码都会检查到apple对应的列表中包含190,输出"Equal"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:40:40