Python 标准库中提供了很多扩展功能,大幅度提高了开发效率。主要介绍 collections 中 OrderedDict 类、defaultdict 类和 Counter类。
1 OrderedDict 类
Python 内置字典 dict 是无序的,如果需要一个可以记住元素插入顺序的字典,则可以使用 collections.OrderedDict。
import collections
x = collections.OrderedDict() # 有序字典
x['b'] = 3
x['c'] = 2
x['a'] = 5
print(x)
2 defaultdict 类
字母出现频次统计问题,可以使用 collections 模块的 defaultdict 类来实现。
import string, random
from collections import defaultdict
x = string.ascii_letters + string.digits
print(x)
y = ''.join((random.choice(x) for i in range(10))) # 10个随机字符
z = defaultdict(int) # 所有值默认为0
print(z)
for i in y:
z[i] += 1 # 修改每个字符的频次
print(z.items())
3 Counter 类
对于频次统计问题,使用 collections 模块的 Counter 类可以更加快速地实现这个功能,并且能够提供更多的功能,如查找出现次数最多的元素。
import string, random
from collections import Counter
x = string.ascii_letters + string.digits
y = ''.join((random.choice(x) for i in range(100)))
z = Counter(y)
print(z)
print(z.items())
print(z.most_common(1)) # 返回出现次数最多的一个字符及其频率
print(z.most_common(3)) # 返回出现次数最多的前3个字符及其频率