切片python字典来执行操作

时间:2016-09-22 19:18:05

标签: python dictionary

新的2.7用户。我有以下字典:

 dict1 = {'A': {'val1': '5', 'val2': '1'},
          'B': {'val1': '10', 'val2': '10'},
          'C': {'val1': '15', 'val3': '100'}}

我有另一本字典

 dict2 = {'val1': '10', 'val2': '16'}

我想从dict2中减去dict1中A的值,得到:

 dict3 = {'val1': '5', 'val2': '15'}

2 个答案:

答案 0 :(得分:6)

使用词典理解创建你的词典:

d3 = {k: str(int(v) - int(dict1["A"][k])) for k, v in dict2.items()}
print(d3)

哪会给你:

 {'val2': '15', 'val1': '5'}

for k, v in dict2.items()遍历来自 dict2 的键/值对,然后我们从 dict1" A" 带dict1["A"][k])的字典并减去。

如果您计划进行类似的计算,您可以将值存储为实际的整数,而不是字符串。

答案 1 :(得分:1)

如果我理解你的问题,这应该有效:

# dict1 and dict2 have been initialized
dict3 = {}
for key in dict2:
    dict3[key] = str(int(dict2[key])-int(dict1["A"][key]))