Python合并相同长度但不同键的字典



我有两个长度相同但键不相同的字典,如下

dict1 = {"integervalue": None, "floatingValue": None, "stringValue": None}
dict2 = {"0": 10, "1": 0.1020, "2": "XXX"}

我需要将第二个字典的值更新为第一个(相同长度的字典),并使用zip来实现如下

for (k, v) in zip(dict1, dict2):
dict1[k] = dict2[v]

完成这项工作并产生如下所示的输出

dict1 = {"integervalue": 10, "floatingValue": 0, "stringValue": "XXX"}

或者有没有更好的方法来实现没有zip ?

这里有一种方法可以实现我认为你所追求的,但它没有考虑到dict2中是否有多个int, float或str值,它修改dict1位,并且它使用第三个字典。

dict1 = {str: 'stringValue', int: 'integerValue', float: 'floatingValue'}
dict2 = {"0": 10, "1": 0.1020, "2": "XXX"}
output = {}
for k, v in dict2.items():
output.update({
dict1.get(type(v)): v
})

输出:{'integerValue': 10, 'floatingValue': 0.102, 'stringValue': 'XXX'}


编辑也可以做for v in dict2.values(),因为我不使用k变量。

假设键总是具有相同的对应关系,就像您所展示的示例一样,我实际上会显式地使用它,而不是依赖于可能导致问题的插入顺序。比如:

key_translation = {
"integerValue": "0",
"floatingValue": "1", 
"stringValue": "2"
}
dict1 = {"integerValue": None, "floatingValue": None, "stringValue": None}
dict2 = {"0": 10, "1": 0.1020, "2": "XXX"}
for key in dict1:
dict1[key] = dict2[key_translation[key]]
print(dict1)
# {'integerValue': 10, 'floatingValue': 0.102, 'stringValue': 'XXX'}

相关内容

  • 没有找到相关文章

最新更新