Loading

collections模块

1.collections

里面封装了一些扩展数据类型,例如queue,有序字典,尽管python3.6之后字典都变的有序了,namedtuple

2.nametuple

常用在封装一些只有属性没有方法的对象

from collections import namedtuple
#定义一个只有属性没有方法的类,Point类名就是一个变量名, "点"是类型 Point
= namedtuple("",("x","y"))
p1 = Point(1,2)
#__str__格式:typename("x"=self.x,"y"=self.y)
print(p1,type(p1))
#一副扑克牌
import
random suits = ["红心","钻石","梅花","黑桃"] nums = [str(i) for i in range(2,11)]+list("JKQA") cards = [Card(suit,num) for suit in suits for num in nums]
#洗牌 random.shuffle(cards)
print(cards) print("随机抽卡",random.choice(cards))

3.其他

#常见的就是系统里面的任务请求,忙的时候处理不过来,任务就会存放到队列当中,先进先出
#所以说,不同的数据结构是对不通逻辑的抽象,也可以视为一种逻辑约束
#先看队列
import queue
q = queue.Queue()
q.put(1)
q.put(11)
print(q)#得到一个对象,内部抽象就不允许看到队列的所有,只给了一个迭代器对象
print(q.get())#当队列空了,就会进入阻塞
print(q.get())
# print(q.get())

#dequeue双端队列:两段都可以存取
#双端队列可以insert,所以做得不专业
from collections import deque
dequeue = deque()#可以创建时传#deque([1,2,3])
dequeue.append(1)
#appendleft从头取
#pop从尾部取,popleft从头取
print(dequeue)#deque可以看到内部全部,反正封装的很混乱,不爽可以自己封装一下

 

posted @ 2019-10-02 14:00  浅忆尘  阅读(59)  评论(0)    收藏  举报