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

Python列表元素值更新问题:函数更新字典price字段失败

问题解决

你的代码里update_price = append(a['price'].data_2)这一行存在多个语法和逻辑错误,导致更新失败,修正方案如下:

错误点分析

  • a['price']是整数类型,没有.data_2这种属性,外部变量data_2直接调用即可,无需通过属性访问
  • append()是Python列表的专属方法,仅用于给列表添加元素,不能用来修改单个数值
  • 你需要直接修改字典中的price字段,额外的update_price变量完全没必要

修正后的代码

ItemList = [
    {'name': 'item', 'item_code': '473', 'price': 0},
    {'name': 'item', 'item_code': '510', 'price': 0},
    {'name': 'item', 'item_code': '384', 'price': 0},
]

data_1 = '510'
data_2 = 200

def update_item(data_1, data_2):
    for a in ItemList:
        if a['item_code'] == data_1:
            # 直接修改对应字典的price字段,赋值为data_2
            a['price'] = data_2
            # 如果需求是给原有价格累加(比如0+200),替换成下面这行
            # a['price'] += data_2
            return True
    # 未找到对应item_code时返回False,便于判断更新状态
    return False

# 调用测试
update_item(data_1, data_2)
print(ItemList)

说明

  • 修正后运行代码,ItemList中item_code为510的元素price会被更新为200
  • 若你的需求是累加价格,将赋值语句替换为a['price'] += data_2即可
  • 新增了未找到对应编码时返回False的逻辑,方便后续判断更新是否成功

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:35:17