Counter() 减去

Counter() subtract

我有两个列表,我想从 neg 中减去列表 pos 中元素的频率。所以:

neg = [x for x in all[:800000]]
pos = [x for x in all[800000:]]
count_pos = Counter(pos)
count_neg = Counter(neg)
positivity = count_pos.subtract(count_neg)
print(positivity)

我希望得到结果,但代码 return:

None

有什么问题?

将对应的行替换为

即可
positivity = count_pos - count_neg

正如对问题的评论所指出的,subtract 方法适用于其对象,returns None。要获得您想要的行为,您可以像这样使用 - 运算符:

positivity = count_pos - count_neg

或者您可以先复制您的 count_pos 计数器并使用其减法:

positivity = Counter(count_pos)
positivity.subtract(count_neg)

在这两种情况下,您最终都会得到一个变量 positivity,其中包含 count_pos 和 count_neg

之间的差异