Python3.4:如何在字典列表中按用户ID更新指定账户余额
遍历列表更新指定用户账户余额的实现方案
嘿,这事儿其实就是把你已经掌握的列表遍历和字典更新逻辑结合起来就行,我给你一步步说明白:
首先先确认你的原始数据结构(格式化后更清晰):
my_list = [ {'user': 1000, 'account1': 100, 'account2': 200, 'account3': 100}, {'user': 1001, 'account1': 110, 'account2': 100, 'account3': 250}, {'user': 1002, 'account1': 220, 'account2': 200, 'account3': 100}, ]
接下来是完整的实现代码,直接就能用在Python3.4里:
update_value = 100 target_user_id = 1001 # 遍历列表里的每个用户字典 for user_dict in my_list: # 判断当前字典是否是目标用户 if user_dict['user'] == target_user_id: # 更新account2的余额 user_dict['account2'] += update_value # 因为用户ID应该是唯一的,找到后直接退出循环省事儿 break
逻辑拆解:
- 先定义好要增加的余额
update_value和目标用户IDtarget_user_id,这样代码更清晰,后续修改也方便 - 用
for循环遍历my_list里的每一个用户字典 - 每次循环时,检查当前字典的
user字段是否等于目标ID,匹配上就执行余额更新 - 加上
break是因为用户ID一般是唯一的,找到目标后就不用继续遍历剩下的元素了,提升效率
可选优化:处理用户不存在的情况
如果担心可能找不到目标用户,可以加个判断提示:
update_value = 100 target_user_id = 1001 user_found = False for user_dict in my_list: if user_dict['user'] == target_user_id: user_dict['account2'] += update_value user_found = True break if not user_found: print(f"抱歉,未找到用户ID为 {target_user_id} 的记录")
这样就完美解决你的问题啦,在Python3.4上完全可以正常运行~
内容的提问来源于stack exchange,提问作者user3114168
相关产品推荐
相关产品推荐

