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

Python检查字典列表中是否存在匹配prod_id键值对及可运行代码实现

修正后可运行完整代码
product_id = 4
product_name = 'Test name'
product_quantity = 2
product_price = 20

add_product = {'prod_id': product_id, 'prod_name': product_name, 'prod_price': product_price, 'prod_quantity': product_quantity}

cart_products = [
    {'prod_id': 4, 'prod_name': 'Sloths', 'prod_price': 10, 'prod_quantity': 1}, 
    {'prod_id': 5, 'prod_name': 'Test new id', 'prod_price': 20, 'prod_quantity': 1}, 
    {'prod_id': 6, 'prod_name': 'Add all IDs', 'prod_price': 10, 'prod_quantity': 1}, 
    {'prod_id': 5, 'prod_name': 'Test new id', 'prod_price': 20, 'prod_quantity': 1}, 
    {'prod_id': 6, 'prod_name': 'Add all IDs', 'prod_quantity': 1, 'prod_price': 10}
]

# 提取购物车所有prod_id存入集合,判断存在性效率更高
cart_prod_ids = {product['prod_id'] for product in cart_products}
print("购物车现有prod_id集合:", cart_prod_ids)

# 核心判断:add_product的prod_id是否在购物车中
target_prod_id = add_product['prod_id']
if target_prod_id in cart_prod_ids:
    print(f"prod_id为{target_prod_id}的商品已存在于购物车中")
else:
    print(f"prod_id为{target_prod_id}的商品不在购物车中")

# 遍历购物车输出明细(保留原调试逻辑,修正错误部分)
for idx, product in enumerate(cart_products):
    print(f"\n第{idx+1}个购物车商品:{product}")
    # 匹配到对应prod_id时输出提示
    if product['prod_id'] == target_prod_id:
        print(f"匹配到相同prod_id的商品:{product['prod_name']}")

# 新增商品到购物车
cart_products.append(add_product)
print("\n新增商品后的购物车全量数据:", cart_products)
核心逻辑说明
  • 直接提取购物车所有商品的prod_id存入集合,O(1)时间复杂度即可完成存在性判断,比嵌套循环遍历效率更高
  • 原代码的判断语句逻辑错误:遍历字典得到的item是字典的键而非prod_id值,同时cart_products是列表无法直接调用['prod_id']属性
  • 新增商品到列表使用append()方法更符合语义,和原代码+= [add_product]效果一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:24:03