1. 模块说明
collections 是 Python 的一个内置模块,所谓内置模块的意思是指 Python 内部封装好的模块,无需安装即可直接使用。
-
collections 包含了一些特殊的容器,针对 Python 内置的容器,例如:list、dict、set、tuple,提供了另一种选择;
-
namedtuple:可以创建包含名称的 tuple;
-
deque:类似于 list 的容器,可以快速的在队列头部和尾部添加、删除元素;
-
OrderedDict:dict的子类,可以记住元素的添加顺序;
-
defaultdict:dict的子类,可以调用提供默认值的函数;
-
Counter:dict的子类,计算可hash的对象;
2. 实战代码
(1). testNamedTuple函数
Python 提供了很多非常好用的基本类型,比如不可变类型 tuple,我们可以轻松地用它来表示一个二元向量。
namedtuple 是一个函数,它用来创建一个自定义的 tuple 对象,并且规定了 tuple 元素的个数,并可以用属性而不是索引来引用 tuple 的某个元素。
如此一来,我们用 namedtuple 可以很方便地定义一种数据类型,它具备 tuple 的不变性,又可以根据属性来引用,使用十分方便。
本示例中我们使用了一个三维坐标 x,y,z 来定义一个 tuple 对象,对象元素有3个,然后通过坐标值来引用相应的值即可。
from collections import namedtuple
from collections import deque
from collections import defaultdict
from collections import OrderedDict
from collections import Counter
def testNamedTuple():
vector=namedtuple('vector',['x','y','z'])
flag=vector(3,4,5)
print(type(flag))
print(isinstance(flag,vector))
print(isinstance(flag,tuple)) #通过这