Как вычесть значения одних и тех же ключей двух дефолтных целых - PullRequest
0 голосов
/ 02 мая 2019

У меня есть два defaultdicts с разными значениями (и, возможно, ключи). Я хочу создать третий с результатом вычитания тех же ключевых значений. Я знаю, что это легко, но я не могу найти питонский способ сделать это (не цикл for).

Полагаю, мне следует использовать operator.sub и некоторую комбинацию map.

a = defaultdict(int)
b = defaultdict(int)

a['8'] += 500
a['9'] += 400
b['8'] += 300

Я бы ожидал:

c 
defaultdict(<class 'int'>, {'8': 200, '9': 400 })

1 Ответ

1 голос
/ 02 мая 2019

Использование collections.Counter

Ex:

a = defaultdict(int)
b = defaultdict(int)

a['8'] += 500
a['9'] += 400
b['8'] += 300
print(Counter(a) - Counter(b))

Выход:

Counter({'9': 400, '8': 200})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...