一个衬垫有条件地替换字典值

时间:2009-07-25 01:00:20

标签: python refactoring dictionary list-comprehension

有没有更好的方法来表达使用列表理解?或者用一种方式表达这一点?

我想用col字典中的相应值替换原始字典中的每个值,或者如果它不在col字典中则保持不变。

col = {'1':3.5, '6':4.7}
original = {'1':3, '2':1, '3':5, '4':2, '5':3, '6':4}
for entry in col.iteritems():
    original[entry[0]] = entry[1]

1 个答案:

答案 0 :(得分:2)

我相信update就是你想要的。

  

更新([其他])

     

使用其他键中的键/值对更新字典,覆盖现有键。   返回无。

<强>代码:

original.update(col[user])

一个简单的测试:

user = "user"

matrix = {
    "user" : {
        "a" : "b",
        "c" : "d",
        "e" : "f",
    },
}

col = {
    "user" : {
        "a" : "b_2",
        "c" : "d_2",
    },
}

original.update(col[user])

print(original)

<强>输出

{'a': 'b_2', 'c': 'd_2', 'e': 'f'}