Python-更新字典列表中的值
我有一个列表,它存储了用户id和他们3个帐户的余额Python-更新字典列表中的值,python,python-3.x,Python,Python 3.x,我有一个列表,它存储了用户id和他们3个帐户的余额 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}, ] 如果用户(用户:1
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},
]
如果用户(用户:1001)希望将100添加到其account2,我如何仅更新相关值
我知道如何像这样更新一本字典
update_value = 100
dict["account2"] += update_value
for d in my_list
......
我也知道如何循环浏览这样的列表
update_value = 100
dict["account2"] += update_value
for d in my_list
......
但是,如何循环浏览列表并选择相关dict(按用户id)并更新它
(我正在使用python3.4)您可以执行以下操作
for each in my_list:
if each['user'] == "1001" #or you can use a variable here
each['account1']+=100 # even here, instead of account1 you can use a variable
上述代码之所以有效,是因为它是您正在更新的引用 结合你所知道的
步骤:
for x in my_list:
if x['user'] == 1001:
x.update({'account2': x['account2']+100})
for x in my_list:
if x['user'] == 1001:
x.update({'account2': x['account2']+100})
你应该考虑用一个更方便的格式来存储你的用户,比如使用用户ID作为密钥的DIST:<代码> { 1000:{帐号1:100,‘帐号2’:200,‘帐号3’:100 },1001:{“帐号1”:110,‘帐号2’:100,‘帐号3’:250 },…} /代码>谢谢!因为我是python新手,所以我刚刚创建了一个简单的dict来存储数据。你的建议很好,似乎比我现有的建议更合理。你的代码很简单!我考虑了一些太复杂的解决方案。。。我已经用你的解决方案更新了我的芹菜cronjob,现在它可以正常工作了!