python编程基础10—collections

本文介绍了Python的collections模块,包括命名元组(namedtuple)、计数器(Counter)、双向队列(deque)、有序字典(OrderedDict)和默认字典(defaultdict)的创建和操作方法,如创建命名元组、计数器的增减操作、双向队列的入队和出队等。
摘要由CSDN通过智能技术生成

1.命名元组 (namedtuple)

Python 中提供了基础的不可变数据结构元组tuple,对元组元素的访问需通过索引来完成,对此需要熟记每个下标对应的具体含义。如果元素数量一多,要记清楚这些东西就会比较麻烦了,于是就出现了命名元组namedtuple。

1.创建命名元组

命名元组的构造函数接受两个参数typename,field_names:
typename:元组的名字;
field_names:元组各个元素的名称,也就是属性名称。

collections.namedtuple("Point",["x","y"])
#创建一个叫做Point的命名元组类,它拥有两个属性x,y。

#第二个参数["x","y"]也可以写成"x y"或者"x,y",即用空格或者逗号隔开属性名,
collections.namedtuple("Point","x y")
collections.namedtuple("Point","x,y")

#将其赋值给一个变量:
Point = collections.namedtuple("Point","x,y")
p = collections.namedtuple("Point","x,y")#变量名不一定要和第一个参数相同

以上得到的变量Point或者p并不直接是一个元组对象,它只是一个类,如果要创建它的实例,则需要像创建类实例一样调用它:

p1 = Point(x = 0, y = 0)
p2 = p(x = 1, y = 1)

这样就创建了两个实例p1,p2,他们的内容分别是x = 0,y = 0,x = 1,y = 1。

2.访问命名元组的元素

通过collections.namedtuple创建的命名元组类,实际上是元组类的子类,因此命名元组也可以通过索引访问元素:

print(p1[0])#0
print(p1[1])#0

命名元组也可以通过属性访问:

print(p2.x)#1
print(p2.y)#1

3.修改元素

如果需要修改元组的元素,则不能简单的使用p1.x = 1,需要调用成员函数_replace(),它会返回一个包含新值的新实例,比如:

p1 = p1._replace(x = 1) #将p1的x值从0换到1

2.计数器(Counter)

计数器是一个无序容器,用于记录各种值出现的次数。它采用键值对的形式存储,要记录的值作为key,这个值出现的次数作为value,value值可正可负。

1.创建计数器

1.要创建一个计数器实例,可以调用它的无参构造函数:

c = collections.Counter()#创建一个空的计数器实例c。

2.可以从list,tuple,dict,字符串等可迭代对象(iterable)创建:

c = collections.Counter(['a','a','b','b','c']) #从list创建
c = collections.Counter(('a','a','b','b'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值