Python中将字典值动态初始化为零

Python中将字典值动态初始化为零,python,counter,Python,Counter,在检测到预测字符串所属的语言后,我正在动态分配字典键,我想知道如何将其初始化为零 from textblob import TextBlob correct = {} for i in max_dist_indices: ... correct[TextBlob(predicted_labels[j]).detect_language()] += 1*(predicted_labels[i] == labels[i]) 其中detec

在检测到预测字符串所属的语言后,我正在动态分配字典键,我想知道如何将其初始化为零

from textblob import TextBlob


correct = {}     

    for i in max_dist_indices:          
...
        correct[TextBlob(predicted_labels[j]).detect_language()] += 1*(predicted_labels[i] == labels[i])
其中d
etect.language()
根据预测标签中的语言返回字符串,英语的“en”用作键。
你知道怎么做吗?

你可以使用
dict.get
方法:

language = TextBlob(predicted_labels[j]).detect_language()
correct[language] = correct.get(language, 0) + (predicted_labels[i] == labels[i])
或者您可以将
correct
初始化为
defaultdict(int)

from collections import defaultdict
correct = defaultdict(int)
correct[language] += predicted_labels[i] == labels[i]

有了字典,就有了键值对。当你说你想把一个键初始化为0时,我想你的意思是你想把它的值初始化为0

假设
1*(预测的标签[i]
不等于
labels[i])
并因此返回0,下面应该给出您想要的结果:


更正[TextBlob(预测的\u标签[j])。检测\u语言()]=1*(预测的\u标签[i]==labels[i])

您可以使用
dict.get(键,默认值)
将默认值设置为零或
设置默认值(键,0)
我建议使用
集合
模块中的或。另一个选项是使用
集合
模块中的
defaultdict
,因为
defaultdict(int)
在没有键时创建一个值
0
条目。@DillonDavis当然,然后用它更新了我的答案。谢谢