Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-更新字典列表中的值_Python_Python 3.x - Fatal编程技术网

Python-更新字典列表中的值

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

我有一个列表,它存储了用户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},
]
如果用户(用户: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,现在它可以正常工作了!