我有以下词典,每个词典都包含一个条目
a = {'long':10}
b = {'short':5}
我想将两个字典相加得到
c = {'long': 5}
其中值5是大数减去小数的结果,而键是大数的键。
谢谢
此问题可能是XY problem,但我假设您知道您要问的是什么。请记住,该解决方案可能无法完全解决您的实际问题。
假设
该代码反映了这些假设:
代码
def d_net(a, b):
"""Return the net diff between two singleton dicts."""
cmp_vals = lambda d: tuple(d.values())
diff = lambda x: x[0] - x[1]
d_max = max([a, b], key=cmp_vals)
d_min = min([a, b], key=cmp_vals)
key = list(d_max.keys())[0]
vals = list(zip(d_max.values(), d_min.values()))[0]
return {key: diff(vals)}
Demo
d_net({"long": 10}, {"short": 5})
# {'long': 5}
d_net({"long": 10}, {"short": 7})
# {'long': 3}
d_net({"long": 10}, {"short": 10})
# {'long': 0}
d_net({"long": -10}, {"short": -3})
# {'short': 7}