- collections是Python内建的一个集合模块,提供了许多有用的集合类,实现一些特定的数据类型,可以替代Python中常用的内置数据类型如dict,list,set和tuple。
''''
This module implements specialized container datatypes providing
alternatives to Python's general purpose built-in containers, dict,
list, set, and tuple.
* namedtuple factory function for creating tuple subclasses with named fields
* deque list-like container with fast appends and pops on either end
* ChainMap dict-like class for creating a single view of multiple mappings
* Counter dict subclass for counting hashable objects
* OrderedDict dict subclass that remembers the order entries were added
* defaultdict dict subclass that calls a factory function to supply missing values
* UserDict wrapper around dictionary objects for easier dict subclassing
* UserList wrapper around list objects for easier list subclassing
* UserString wrapper around string objects for easier string subclassing
''''
namedtuple
namedtuple('名称', [属性list]):
举个例子形象说明:
tuple元组可以表示不变集合,如原点的二维坐标可以表示成:a = (0, 0)
为了使我们看到(0,0)能知道它是一个坐标,我们可以用namedtuple:
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(0, 0)
namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,同时可以用属性引用tuple的某个元素。
通过isinstance来验证创建的对象:
print(isinstance(p, Point))
print(isinstance(p, tuple))