如何在Python中更新字典列表中的键

2024-09-28 01:26:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常简单的用例,其中我必须更新字典列表中的一个键。代码如下:

original = [
    {
        "name": "Subhayan",
        "age": 34
    },
    {
        "name": "Poulomi",
        "age": 30
    }
]

update_data = {
    "Subhayan": 50,
    "Poulomi": 46
}

check = [x["age"] = update_data[x["name"]] for x in original]
print(check)

我有个奇怪的错误:

  File "try_defaultdict.py", line 17
    check = [x["age"] = update_data[x["name"]] for x in original]
                      ^
SyntaxError: invalid syntax

我知道这可以用一个简单的for循环来完成。但是我想知道我能不能用列表理解法来做这个?你知道吗


Tags: 代码namein列表foragedata字典
2条回答

尝试这样做,这样可以就地更新值:

 original = [
     {
         "name": "Subhayan",
         "age" : 34
     },
     {
         "name": "Poulomi",
         "age" : 30
     }
 ]

 update_data = {
     "Subhayan" : 50,
     "Poulomi"  : 46
 }

 [x.update({"age": update_data.get(x["name"])}) for x in original]
 print(original)

也许你想创建新的词典?在这种情况下,这是可行的:

check = [{"name": x["name"], "age": update_data[x["name"]]} for x in original]

结果:

>>> check
[{'name': 'Subhayan', 'age': 50}, {'name': 'Poulomi', 'age': 46}]

相关问题 更多 >

    热门问题