Python标准库参考-collections

9.3 collections

地址: http://docs.python.org/library/collections.html

9.3.1 ABC – abstract base classes

collections 模块提供了一些抽象类。可以用来检查某个类或者实例是否支持特定的功能,也可以作为 mixin 类使用。

9.3.2 deque

文档的例子比较详细了。自己敲了一遍:

>>> from collections import deque

>>> d = deque()

>>> d

deque([])

>>> d = deque(1,2,3)

Traceback (most recent call last):

  File "<pyshell#4>", line 1, in <module>

    d = deque(1,2,3)

TypeError: deque expected at most 1 arguments, got 3

>>> d = deque([1,2,3])

>>> d

deque([1, 2, 3])

>>> d.append(4)

>>> d

deque([1, 2, 3, 4])

>>> d.appendleft(0)

>>> d

deque([0, 1, 2, 3, 4])

>>> d.pop()

4

>>> d

deque([0, 1, 2, 3])

>>> d.popleft()

0

>>> d

deque([1, 2, 3])

>>> d.extend([4,5,6,7])

>>> d

deque([1, 2, 3, 4, 5, 6, 7])

>>> d.rotate(1)

>>> d

deque([7, 1, 2, 3, 4, 5, 6])

>>> d.rotate(-1)

>>> d

deque([1, 2, 3, 4, 5, 6, 7])

>>> d.rotate(5)

>>> d

deque([3, 4, 5, 6, 7, 1, 2])

>>> d.rotate(2)

>>> d

deque([1, 2, 3, 4, 5, 6, 7])

>>> 

 

文档里还有一部分是 deque 的应用实例,例如读取一个文件最后几行的 tail 函数、 moving_average

 

9.3.3 defaultdict

dict 的子类。多了一个 __missing__(key) 函数和 default_factory 属性,其实就是提供了一种默认行为。例如:

字典:

>>> d = {}

>>> d['snow']

Traceback (most recent call last):

  File "<pyshell#46>", line 1, in <module>

    d['snow']

KeyError: 'snow'

 

默认字典:

>>> from collections import defaultdict

>>> d = defaultdict(int)

>>> d['snow']

0

 

文档里有应用实例,用来计数。用 if 同样可以实现计数,但是性能要差。

9.3.4 namedtuple()

除了支持所有的元组操作之外,可以使用名称而不是位置来访问元素。文档里有一个 Point 的例子。

2009 6 7 15:04:17

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值