使用Counter可以方便快捷地对序列中的元素进行频次统计,同时也可以被用作映射等应用。
以下是使用Counter做映射的完整攻略,包含了使用方法、示例说明以及相关操作。
Counter简介
Counter是Python内置的一个用于统计频率的工具类。它接受一个包含元素的可迭代对象,并输出元素出现的频率表,即一个字典,其中元素作为键,其出现次数作为值。
使用Counter必须先导入collections
模块,使用时需要创建一个Counter对象并将待统计的序列作为参数传入。Counter对象是一个字典,可以使用字典的一些操作。
使用方法
以下是Counter的使用方法:
创建Counter
import collections
seq = [1, 2, 3, 4, 5, 3, 2, 1, 4, 3]
counter = collections.Counter(seq)
访问Counter
可以像字典一样访问Counter,获取元素的出现次数:
count_1 = counter[1]
count_2 = counter[2]
count_3 = counter[3]
更新Counter
可以使用update()
方法将新的元素加入Counter:
seq_new = [1, 2, 3, 3, 3, 3]
counter.update(seq_new)
其他操作
most_common(n)
方法:返回Counter中出现次数最多的前n个元素,以元素和出现次数的元组形式返回。- 执行算术或逻辑运算:可以进行加、减、交、并、或等运算,返回一个新的Counter对象。
示例说明
示例1:统计字符串中的字母出现次数
import collections
str = "hello,world!"
counter = collections.Counter(str)
print(counter)
输出结果:
Counter({'l': 3, 'o': 2, 'e': 1, 'h': 1, ',': 1, 'w': 1, 'r': 1, 'd': 1, '!': 1})
示例2:统计列表中元素出现次数并排序
import collections
seq = [1, 2, 3, 4, 5, 3, 2, 1, 4, 3]
counter = collections.Counter(seq)
sorted_counter = sorted(counter.items(), key=lambda item: item[1], reverse=True)
for key, count in sorted_counter:
print(str(key) + ": " + str(count))
输出结果:
3: 3
1: 2
2: 2
4: 2
5: 1