容器数据类型,collections模块包含除内置类型list、dict和tuple以外的其他容器数据类型。
下面我们来学习一下,collections模块的常见用法。
Counter访问计数
对于未知元素,Counter不会产生KeyError。如果在输入中没有找到某个值,其计数为0。
运行程序,你将看到如下输出:
输出结果说明,字符a在'abcdaab'中出现了3次,字符b在'abcdaab'中出现了2次,以此类推。
把字符串生成序列
运行程序,你将看到如下输出:
这个方法不能保证元素的顺序不变。
字符出现频度统计
使用most_common()方法,可以统计一个字符串中,出现频率最高的字符及其次数。
运行程序,你将看到如下输出:
deque
deque支持从任意一端增加和删除元素。更为常用的两种结构,就是栈和队列。
在队列中添加元素
运行程序,你将看到如下输出:
从右端删除一个元素
运行程序,你将看到如下输出:
从左端删除一个元素
运行程序,你将看到如下输出:
队列元素向右旋转
向右旋转,是指从右端取元素,把它们移到左端。
运行程序,你将看到如下输出:
队列元素向左旋转
向左旋转,是指从左端取元素,把它们移到右端。
运行程序,你将看到如下输出:
OrderedDict
OrderedDict是一个字典子类,可以记住其内容增加的顺序。
常规dict并记录插入元素顺序,迭代处理时会根据键在字典中存储的顺序来生成值。但是在OrderedDict中则相反,它会记住元素插入的顺序,并在创建迭代器时使用这个顺序。
运行程序,你将看到如下输出:
由于两个有序字典由不同顺序的值创建,所以认为这两个有序字典是不同的。
小结
这一次主要学习了collections库中Counter、deque、OrderedDict常见的用法。
领取专属 10元无门槛券
私享最新 技术干货