首页 > 解决方案 > 如何防止 Counter() 拆分我的字符串?

问题描述

因此,我使用集合中的 Counter() 方法并尝试从数据框中读取一列以获取特定国家/地区的计数。问题是 Counter() 将读入的字符串拆分为单个字母。例如,我正在运行类似的东西:

from collections import Counter 

country_counter = Counter()

my_list = ['US', 'US', 'Mex', 'Can', 'US', 'Can']

for x in my_list:
    country_counter.update(x)

这给出了以下输出:

Counter({'U': 3, 'S': 3, 'M': 1, 'e': 1, 'x': 1, 'C': 2, 'a': 2, 'n': 2})

但我正在努力:

Counter({'US': 3, 'Can': 2, 'Mex': 1})

有关如何纠正此问题的任何帮助?我什至应该使用 Counter() 还是有更有效的方法?

标签: pythonlistcounter

解决方案


您可以简单地将列表作为输入提供给Counter. 当前您正在做的是迭代每个字符串并将其作为输入提供,因此如果您提供输入,计数器会考虑单个字母。

>>> from collections import Counter 
>>> my_list = ['US', 'US', 'Mex', 'Can', 'US', 'Can']
>>> c=Counter(my_list)
>>> c
Counter({'US': 3, 'Can': 2, 'Mex': 1})

推荐阅读