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])
其中detect.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当然,然后用它更新了我的答案。谢谢