Python通过从另一个dictionary Counter()添加来更新dictionary int值

2024-07-03 06:00:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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)

我很难理解字典更新时,值需要一起增加而不仅仅是“更新”。在

从上面的例子中,当origincount.update(counts)发生,它只是将值更改为counts中的值。再看一眼,它也会做同样的事情。在

问题是我需要通过计数来增加值,而不仅仅是替换它。在

我尝试循环计数并对它不是0做if,然后添加doingorigincount['Bug']=counts['Bug']+origincount['Bug']。但这似乎是因为我自己的错误或根本没有。在

更新:

^{pr2}$

输出:

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})

即使使用原点dict的计数器转换,它仍然不能将它们相加。在


Tags: forifiscounterbuglowepicstory
2条回答

在循环的每一次迭代中,都会声明并初始化一个新的Counter对象。在

我敢打赌它会到达循环的末尾,然后origincounts在最后一次迭代中被清零。在

我想这是可行的,迭代origincount,每次检查它是否在othercount中,如果在othercount中,则更新origincount值。在

for key, value in origincount.items():
    if key in othercount.keys():
        origincount[key] = value + othercount[key]

相关问题 更多 >