origincount = {
'Bug': 0,
'Important': 0,
'User Story': 0,
'Critical': 0,
'Moderate': 0,
'Low': 0,
'story': 0
}
if epic['archived'] is False:
for story in stories:
if story['epic'] is not None and story['epic']['id'] == epic['id']:
counts = Counter(label['name'] for label in story['labels'])
origincount.update(counts)
У меня возникли проблемы с пониманием обновлений словаря, когда значения нужно увеличивать вместе, а не просто «обновлять».Python - обновить значения словаря int, добавив из другого словаря Counter()
Из приведенного выше примера, когда происходит originincount.update (counts), он просто изменяет значение на все, что он подсчитывает. при следующем взгляде он делает то же самое.
Проблема в том, что мне нужно увеличить значение по подсчетам, а не просто заменить его.
Я пробовал перебирать счетчики и делал if, если против него не было 0, а затем добавление make originincount ['Bug'] = counts ['Bug'] + origincount ['Bug']. но это, казалось, терпит неудачу из-за моих собственных ошибок или просто совсем нет.
Update:
for epic in epics:
origin = Counter({
'Bug': 0,
'Important': 0,
'User Story': 0,
'Critical': 0,
'Moderate': 0,
'Low': 0,
'story': 0
})
if epic['archived'] is False:
for story in stories:
if story['epic'] is not None and story['epic']['id'] == epic['id']:
# story_total += 1
counts = Counter(label['name'] for label in story['labels'])
print(counts)
origin = origin + counts
print(origin)
Выход:
Counter({'Bug': 1, 'Important': 1})
Counter({'Critical': 1, 'Bug': 1})
Counter({'User Story': 1})
Counter({'Bug': 1})
Counter({'Bug': 1, 'Important': 1})
Counter({'Bug': 1, 'Important': 1})
Counter({'Critical': 1, 'Bug': 1})
Counter({'User Story': 1})
Counter({'User Story': 1})
Counter({'User Story': 1})
Counter({'User Story': 1})
Counter({'User Story': 1})
Counter({'User Story': 1})
Counter({'User Story': 1})
Counter({'User Story': 1})
Counter({'User Story': 1})
Counter({'User Story': 1})
Counter({'Critical': 1, 'Bug': 1})
Counter({'Critical': 1, 'Bug': 1})
Counter({'User Story': 1})
Counter({'User Story': 1})
Counter({'User Story': 1})
Counter({'User Story': 1})
Counter({'Critical': 1, 'Bug': 1})
Counter({'Critical': 0, 'User Story': 0, 'Important': 0, 'story': 0, 'Low': 0, 'Bug': 0, 'Moderate': 0})
Даже при преобразовании счетчика происхождения ДИКТ он еще не добавляет их.
Вы можете просто добавить счетчики вместе –
so origincount = origincount + counts? TypeError: неподдерживаемый тип операндов для +: 'dict' и 'Counter' the origincount не является счетчиком только dict – SudoGaron
Проблема в том, что 'origincount' НЕ является' Counter'. Почему бы вам не сделать это? – timgeb