collections模块整理
collections是Python内建的一个集合模块,提供了许多有用的集合类。 namedtuple 我们知道 tuple 可以表示不变集合,例如,一个点的二维坐标就可以表示成: >>> p = (1, 2) 但是,看到 (1, 2) ,很难看出这个 tuple 是用来表示一个坐标的。 定义一个class又小题大做了,这时, namedtuple 就派上了用场: >>> from collections import namedtuple >>> Point = namedtuple('Point', ['x', 'y']) >>> p = Point(1, 2) >>> p.x 1 >>> p.y 2 namedtuple 是一个函数,它用来创建一个自定义的 tuple 对象,并且规定了 tuple 元素的个数,并可以用属性而不是索引来引用 tuple 的某个元素。 这样一来,我们用 namedtuple 可以很方便地定义一种数据类型,它具备tuple的不变性,又可以根据属性来引用,使用十分方便。 可以验证创建的 Point 对象是 tuple 的一种子类: >>> isinstance(p, Point) True >>> isinstance(p, tuple) True 类似的,如果要用坐标和半径表示一个圆,也可以用 namedtuple 定义: # namedtuple