Этот вопрос может быть проблемой XY , но я предполагаю, что вы знаете, о чем спрашиваете. Имейте в виду, что решение может не полностью решить вашу актуальную проблему.
Допущения
Код отражает следующие предположения:
- Есть два dicts
- Каждый dict является одноэлементным с одной парой ключ-значение
- Значения являются целыми числами
- Результирующий dict также одноэлементный
- Результирующий ключ происходит из словаря с большим значением
- Результирующее значение равно большему минус меньшие значения
Код
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)}
Демо
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}