python中collections_Python中的collections模块
Python中内置了4种数据类型,包括:list,tuple,set,dict,这些数据类型都有其各自的特点,但是这些特点(比如dict无序)在一定程度上对数据类型的使用产生了约束,在某些使用场景下效率会比较低,比如有时候我们可能需要维护一个有序的字典等情况。
在这种场景下我们可以使用Python内建的collections模块,它包括了很多有用的集合类,合理的使用可以提高我们代码的运行效率。
接下来主要对collections模块中的常用集合类进行介绍,调用collections模块:
from collections import *
defaultdict
dict在使用时,当key值不存在时,直接添加value时会出现错误,使用defaultdict可以很好的规避该错误。defaultdict是对字典类型的补充,它可以给字典的值设置一个类型,当key不存在时可以自动生成相应类型的value。
举例:
from collections import defaultdict
test_data = (
('cat', 2),
('dog', 5),
('sheep', 3),
('cat', 1),
('sheep', 2)
)
test_data_dict = defaultdict(list)
for name, num in test_data:
test_data_dict[name].append(num)
print test_data_dict
orderedDict
在Python3.6之前的字典是无序的,但是有时候我们需要保持字典的有序性,orderDict可以在dict的基础上实现字典的有序性,这里的有序指的是按照字典key插入的顺序来排列,这样就实现了一个先进先出的dict,当容量超出限制时,先删除最早添加的key。
举例:
#orderedDict
original_dict = {'a': 2, 'b': 4, 'c': 5}
for key, value in original_dict.items():
print key, value
ordered_dict = OrderedDict([('a', 2), ('b', 4), ('c', 5)])
for key, value in ordered_dict.items():
print key, value
可以看到orderDict是按照字典创建时的插入顺序来排序。
deque
Python中的list是基于数组实现的,所以,查找容易,但是插入和删除操作时间复杂度较大。
deque就是为了高效实现插入和删除操作的双向列表,适合用于队列和栈,而且线程安全。
list只提供了append和pop方法来从list的尾部插入或者删除元素,deque新增了appendleft/popleft等方法可以更高效的在元素的开头来插入/删除元素。
举例:
from collections import deque
d = deque([1,2,3,4,5])
d.extendleft([0])
print d
d.extend([6,7])
d.popleft()
print d
可以进行双向操作元素,十分方便。
Counter
字典子类,为可以哈希的对象计数。
举例:
from collections import Counter
test_counter_data = ['cat', 'dog', 'sheep', 'cat', 'dog']
counter_data = Counter()
for item in test_counter_data:
counter_data[item] += 1
print counter_data
可以实现对一个对象中的元素进行计数。
namedtuple
元组子类。
我们知道,Python中元组的一个重要特征就是元素不可增删改,而查找tuple元素时一般采取索引。
使用namedtuple(typename, field_name)可以命名tuple中的元素,之后便可使用名字来查找tuple中的值,有点类似于字典中的查找。
举例:
from collections import namedtuple
animal = namedtuple('animal', 'type age')
mark = animal(type='dog', age=2)
print mark.type
使用namedtuple可以提高代码的可读性和文档性。
以上,是collections模块中的常用集合类。
python中collections_Python中的collections模块相关推荐
- python中collections_Python中collections模块的基本使用教程
前言 之前认识了python基本的数据类型和数据结构,现在认识一个高级的:Collections,一个模块主要用来干嘛,有哪些类可以使用,看__init__.py就知道 '''This module ...
- Python学习日记(十五) collections模块
在内置函数(dict.list.set.tuple)的基础上,collections模块还提供了几个其他的数据类型:Counter.deque.defaultdict.namedtuple和Order ...
- python namedtuple用法_Python的collections模块中namedtuple结构使用示例
namedtuple 就是命名的 tuple,比较像 C 语言中 struct.一般情况下的 tuple 是 (item1, item2, item3,...),所有的 item 都只能按照 inde ...
- 一. python的collections模块
一.collections模块 Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外 ...
- python中counter_Python collections模块中counter()的详细说明,Pythoncollections,之,Counter,详解...
collections模块 ==> Python标准库,数据结构常用的模块:collections包含了一些特殊的容器,针对Python内置的容器,例如list.dict.set和tuple,提 ...
- Python中collections模块
目录 Python中collections模块:模块实现了特定目标的容器,以提供Python标准内建容器 dict.list.set.tuple 的替代选择. Counter:字典的子类,提供了可哈希 ...
- python优雅编程_Python优雅编程——Collections模块中的高性能数据类型
Python中内置了4 种数据类型,列表(List),元组(Tuple),集合(Set),字典(Dict).这些数据类型都有其各自的特性,但是有些特性,比如字典无序,在一定程度上对数据类型的使用产生了 ...
- python collections 模块中的 deque
collections.deque介绍 collections 是 python 内建的一个集合模块,里面封装了许多集合类,其中队列相关的集合只有一个:deque. deque 是双边队列(doubl ...
- Python中Collections模块的Counter容器类使用教程
Python中Collections模块的Counter容器类使用教程 1.collections模块 collections模块自Python2.4版本开始被引入,包含了dict,set,list, ...
最新文章
- Java性能优化指南,及唯品会的实战
- android 触摸监听重写_Android监听屏幕的滑动事件
- 《碟中谍5》中惊鸿一瞥的步态识别技术,究其神在哪里?
- Oracle 游标范例
- Pentium的指令系统(1)——Pentium的寻址方式
- 唯一索引和逻辑删除冲突
- flume学习(九):使用Morphline Interceptor
- 世链投研|链游操作指南之MIR4
- 路由器运行python脚本_在路由器中运行Python
- mysql cmd insecure_看各路神仙如何大战MySQL insecure warning报警有感
- 你好 同样在努力的陌生人
- 【javascript】收藏本站——添加到浏览器收藏夹
- BetaFlight模块设计之十:磁力计任务分析
- Python 简易版小工具 | 计算天数
- HTML5练习——布局练习01(内含5个基本的css命名规则)
- 如何使用Createjs来编写HTML5游戏(二)使用EaselJS处理图片
- 授权DNS之Cloudxns的体验
- 那些LTE的上行技术
- 用超级兔子管理计算机的技巧
- YT Saver(网页视频下载软件)官方中文版32位V4.6.0 | 网页万能视频下载神器