1 python基础之模块
collections模块
collections是Python内建的一个集合模块,提供了许多有用的集合类。
namedtuple
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。
这样一来,我们用namedtuple可以很方便地定义一种数据类型,它具备tuple的不变性,又可以根据属性来引用,使用十分方便。
deque
用list存储时,按索引访问快,但是插入和删除元素慢,因为list是线性存储,数据量大的时候,插入和删除效率很低。
deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈:
Python
from collections import deque
q = deque(['a', 'b', 'c'])
q.append('x')
q.appendleft('y')
print q
deque(['y', 'a', 'b', 'c', 'x'])
OrderedDict
使用dict时,Key是无序的。在对dict做迭代时,我们无法确定Key的顺序。
如果要保持Key的顺序,可以用OrderedDict:
Python
from collections import OrderedDict
d = dict([('a', 1), ('b', 2), ('c', 3)])
print 'd',d
od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
print 'od',od
d {'a': 1, 'c': 3, 'b': 2}
od OrderedDict([('a', 1), ('b', 2), ('c', 3)])
小结
不得不说,python的好多内置模块用起来还是很方便的哟。