Сумма значений из вложенного словаря - Python - PullRequest
0 голосов
/ 29 марта 2020

Допустим, у меня есть следующий словарь

counts = 
 {(0, 0): {'00': 0, '01': 4908, '10': 0, '11': 5092},
 (0, 1): {'00': 0, '01': 5023, '10': 0, '11': 4977},
 (1, 0): {'00': 0, '01': 5058, '10': 0, '11': 4942},
 (1, 1): {'00': 0, '01': 4965, '10': 0, '11': 5035}}

, и я хочу сложить счетчики [0,0] и [0, 1], чтобы получить

idealcounts = {'00': 0, '01': 9931, '10': 0, '11': 10069}

Как мне извлечь значения счетчиков [0, r] и затем сложить их все? Спасибо за помощь.

1 Ответ

2 голосов
/ 29 марта 2020

Вы можете просто использовать collection.Counter и обновить его нужными под-словарями:

from collections import Counter

data = {
    (0, 0): {'00': 0, '01': 4908, '10': 0, '11': 5092},
    (0, 1): {'00': 0, '01': 5023, '10': 0, '11': 4977},
    (1, 0): {'00': 0, '01': 5058, '10': 0, '11': 4942},
    (1, 1): {'00': 0, '01': 4965, '10': 0, '11': 5035}
}

counts = Counter()

for k in ((0, 0), (0, 1)):
    counts.update(Counter(data[k]))

print(counts)
# Counter({'00': 0, '01': 9931, '10': 0, '11': 10069})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...