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
相关产品推荐
相关产品推荐

