collections模块

1.namedtuple: 生成可以使用名字来访问元素内容的tuple

from collections import namedtuple    # namedtuple 命名元祖
P = namedtuple("point",['x','y'])
p1 = P(1,2)
p2 = P(3,4)
print(p1.x )
print(p1.y )
print(p2.x )
print(p2.y )
# 1
# 2
# 3
# 4

P2 = namedtuple("bir",["year","mon","day"])
p3 = P2(1993,2,2)
print(p3.year)
print(p3.mon)
print(p3.day)
# 1993
# 2
# 2

 

2.deque: 双端队列,可以快速的从另外一侧追加和推出对象

# 队列
import queue
q = queue.Queue()
q.put(1)
q.put(2)
q.put("aaa")
q.put("bbb")
#不能直接打印队列内容,但可以打野队列的长度
print(q.qsize())
print(q.get())
print(q.get())
print(q.get())
print(q.get())
# 4
# 1
# 2
# aaa
# bbb
# for i in range(q.qsize()) :
#     print(q.get())   这是循环
#  先进来先处理
from collections import deque
dq = deque()
dq.append("a")
dq.append("b")
dq.appendleft("c")
print(dq)
print(dq.pop()) #  从右边开始删除
print(dq.popleft()) #从左边删除
# deque(['c', 'a', 'b'])
# b
# c
 

 

3.Counter: 计数器,主要用来计数

4.OrderedDict: 有序字典

# 有序的字典
from collections import OrderedDict
d = dict([("a",1),("b",2)])
print(d)
#{'a': 1, 'b': 2}  这是正常的字典,key是无序的

od = OrderedDict([("a",1),("b",2)])
print(od)
#OrderedDict([('a', 1), ('b', 2)])   没有索引,但是是有序存在

 

5.defaultdict: 带有默认值的字典

 

posted @ 2017-11-14 17:29  4个人搬木头  阅读(53)  评论(0)    收藏  举报