计数器()减去

时间:2017-12-27 14:04:50

标签: python list counter subtraction

我有两个列表,我想从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)

我希望得到结果,但代码会返回:

None

有什么问题?

2 个答案:

答案 0 :(得分:1)

只需用

替换相应的行
positivity = count_pos - count_neg

答案 1 :(得分:1)

正如对该问题的评论所指出的那样,subtract方法适用于其对象并返回None。要获得所需的行为,您可以使用-运算符,如下所示:

positivity = count_pos - count_neg

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

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

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