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

Python:如何根据字典值查找对应字典?物品属性查询求助

解决Python库存物品按名称查找问题

实现步骤

  • 获取用户输入的物品名称,用strip()去除前后空白字符优化输入体验
  • 遍历inventory列表中的每个字典元素,比对字典的Name字段与用户输入
  • 找到匹配项后,遍历字典键值对,跳过Name字段输出其他属性;未找到则给出提示

完整示例代码

# 已定义的库存列表(示例数据)
inventory = [
    {"ID": "ID001", "Name": "Apple", "Price": 5, "Stock": 100},
    {"ID": "ID002", "Name": "Banana", "Price": 3, "Stock": 150},
    {"ID": "ID003", "Name": "Orange", "Price": 4, "Stock": 80}
]

# 获取用户输入
user_input = input("请输入物品名称:").strip()

# 查找匹配的物品
target_item = None
for item in inventory:
    # 若需忽略大小写匹配,可改为:item["Name"].lower() == user_input.lower()
    if item["Name"] == user_input:
        target_item = item
        break

# 输出结果
if target_item:
    print("物品详情:")
    for key, val in target_item.items():
        if key != "Name":
            print(f"{key}: {val}")
else:
    print(f"未找到名称为「{user_input}」的物品")

扩展优化

  • 大小写不敏感匹配:将名称统一转为小写(或大写)后比对,避免因输入大小写差异导致查找失败
  • 多同名物品处理:若库存存在多个同名物品,可改用列表收集所有匹配项,再批量输出:
# 收集所有匹配项
matched_items = [item for item in inventory if item["Name"].lower() == user_input.lower()]

if matched_items:
    print(f"找到{len(matched_items)}个匹配物品:")
    for idx, item in enumerate(matched_items, 1):
        print(f"\n第{idx}个物品:")
        for key, val in item.items():
            if key != "Name":
                print(f"{key}: {val}")
else:
    print(f"未找到名称为「{user_input}」的物品")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 07:23:26