python字典有序还是无序_Python函数式编程,collections模块使用讲解

collections模块介绍

collections模块是对Python已有数据类型进行了增强

collections模块提供5种增强型数据类型:

  1. Counter 计数器,用于统计元素的数量
  2. OrderDict 有序字典
  3. defaultdict 值带有默认值的字典
  4. namedtuple 可命名元组,通过名字来访问元组元素
  5. deque 双向队列,队列头尾都可以放,也都可以取(与单向队列对比,单向队列只能一头放,另一头取)

Counter类型,计数器

Counter类型,计数器功能,通过字典形式统计元素出现的次数。

看示例,就知道怎么用:

93eea4fc78a973b4c5bd35382a8a63c4.png

Counter数据类型是基于Python dict类型实现类。

OrderDict类型,有序字典

Python dict数据类型key是无序的,而Collections模块提供一个有序字典OrderDict数据类型

OrderDict的用法跟dict基本相同,比如keys(), values(), clear()等

看示例,就知道怎么用:

e0ef06bfb6a5471a1d1b12d0ebd76589.png
OrderDict是如何做到有序字典的?答:在已有字典数据类型基础上,通过列表或者元组来维护key,继而保证字典key的次序

defaultdict类型,值带有默认类型的字典

defaultdict类型还是字典类型,只不过这个字典类型的value可以设置一个默认类型。

看一下defaultdict类型使用场景:如下例,将男性女性分开,所有男性放到male中,所有女性放放到female中,

常规做法:

979d427b17ad17d0c222f252a810bf69.png

如果使用defaultdict就会简单很多:

6cff720d721036844daf3754367223b1.png

namedtuple类型,可命名元组

namedtuple类型,即可命名元组,可以给元组每个元素起一个别名,可通过别名访问元组中对应的元素,增强访问元组的可读性。

看示例,就知道怎么用:

5a5b6d05e72cc784ef32d5fb3735ba82.png

deque类型,双向队列

deque类型,即双向队列。

队列分为:

  • 单向队列(只能从一边放,从另外一边取),如Python Queue内置模块
  • 双向队列(两头都可以放,也都可以取),如collections.deque

deque很多用法跟list相同,比如count,index等,这里列出几个特别的。看示例,就知道怎么用:

50e6184bb5ff4f2a440427e4cdfa94b4.png

总结

了解collections模块这五个增强型数据类型,你会发现,这5种增强型数据类型是基于Python已有数据结构进行封装而得到。 熟练使用collections模块,让你的代码更加pythonic!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值