Chinaunix首页 | 论坛 | 博客
  • 博客访问: 656396
  • 博文数量: 87
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2022
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-23 11:16
个人简介

西邮大三狗!!!

文章分类

全部博文(87)

文章存档

2015年(47)

2014年(40)

分类: Python/Ruby

2015-06-09 21:59:33

该模块实现一些有用的容器类型

1.deque(双端队列)
实例方法:
d.append(x)                将x添加到d的右端
d.appendleft(x)           将x添加到d的左端
d.clear()                        删除d中所有项目
d.extend(iterable)        将iterable的所有项目添加到d的右端
d.extendleft(iterable)   将iterable的所有项目添加到d的左端
d.pop()                          返回并删除d右端的项目,如果d为空,则抛出IndexError
d.popleft()                    返回并删除d左端的项目,如果d为空,则抛出IndexError
d.remove(item)            删除首次出现的item,如果未找到匹配值,则抛出ValueError
d.rotate(n)                    将所有项目向右旋转n步,如果n为负值,则向右旋转

2.nametuple(命名元组)
实例方法:
for example:
>>> from collections import namedtuple
>>> People = namedtuple('silence0607','firstname lastname')
>>> silence0607 = People('tang','peng')
>>> silence0607.firstname
'tang'
>>> silence0607.lastname
'peng'
命名元组相对于元组而言,在访问元素的过程中,我们可以使用属性查找,而在元组中,只能通过index访问。在元素比较多的情况下,很难记住每个index对应的元素代表什么意思。namedtuple也可以用类来代替的:
上面这个例子类似于:
#coding=utf-8
#!/usr/bin/env python
class People():
 def __init__(self,firstname,lastname):
  self.firstname = firstname
  self.lastname = lastname
if __name__ == '__main__':
 silence0607 = People('tang','peng')
 print('%s %s') % (silence0607.firstname,silence0607.lastname)
二者工作原理基本一致,但是在属性的访问过程中,namedtuple要比class慢两倍!
阅读(3823) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~