首页 > 其他 > 详细

collections模块

时间:2019-08-10 19:03:14      阅读:99      评论:0      收藏:0      [点我收藏+]

一、定义

# collections模块  python中的扩展数据类型
#     起名时不能起和模块相投的模块,因为模块本质就是python文件
# 列表,元组
# 字符串
# 集合(frozen set)
# 字典
# 堆栈(先进后出)(没有这种数据类型)
# 队列(先进先出)(有单独数据类型)(FIFO)

二、方法

  1.namedtuple,元组命名

#namedtuple
#namedtuple(‘名称‘,‘[变量组]‘)
from collections import namedtuple
Point=namedtuple(point,[x,y])   #前面的point取名无关,后面的列表中就是有几个元素,可以加z之类的
p=Point(1,2)
p2=Point(2,1)
print(p.x)
print(p.y)
print(p)
print(p2)
# 1
# 2
# point(x=1, y=2)
# point(x=2, y=1)

  举例:扑克花色

#花色
Card=namedtuple(card,[suits,number])
C1=Card(红心,2)
print(C1.number)

  2.Queue 队列

#队列
import queue
q=queue.Queue()
q.put(10)         #放入值可以是其他数据类型,一次只能放一个值
q.put(5)
q.put(4)
print(q)          #一个队列类型的内存地址
print(q.get())
print(q.get())
print(q.get())    #顺序10,5,4
# print(q.get())  #阻塞,整个程序停住,直到再在队列中放入一个值

print(q.qsize())  #返回3
#不能循环,只能放入值,取值,查大小

  3.deque

#双端队列
#可以插队,Insert方法
from collections import deque
deq=deque([de,me])
deq.append(c2)       #从后面放数据
deq.appendleft(cl)   #从前面放数据
print(deq)
deq.insert(1,3)     #在1这个位置插入3,会取代以及定义的
print(deq.pop())     #取后面的c2
# deq.pop()          #从后面取
# deq.popleft()      #从前面取
print(deq)         #deque([3, ‘de‘])

  4.OrderDict

#orderdict   没有索引,但是有序,循环也依旧可以用
from collections import OrderedDict
od=OrderedDict([(a,1),(b,2)])
print(od)
print(od[a])
# OrderedDict([(‘a‘, 1), (‘b‘, 2)])
# 1

  5.defaultdict

#defaultdict
# 给一个空字典,先创建defaultdict,所有value可以自定义默认类型(callable)
from collections import defaultdict
d=defaultdict(lambda:5)   #要是callable,所以不能直接写值,就用匿名函数
print(d[k])

  6.counter  计算字符串中每个字符个数

#counter
from collections import Counter
c=Counter(arwarfdhtgfa)
print(c)
# Counter({‘a‘: 3, ‘r‘: 2, ‘f‘: 2, ‘w‘: 1, ‘d‘: 1, ‘h‘: 1, ‘t‘: 1, ‘g‘: 1})

 

collections模块  python中的扩展数据类型
起名时不能起和模块相投的模块,因为模块本质就是python文件
列表,元组
字符串
集合(frozen set)
字典
堆栈(先进后出)(没有这种数据类型)
队列(先进先出)(有单独数据类型)(FIFO)

collections模块

原文:https://www.cnblogs.com/lowislucifer/p/11332258.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!