了解一下python内建模块collections


Posted in Python onSeptember 07, 2020

在使用Python的过程中,一定是离不开数据结构的, 也就是List-列表,Tuples-元组,Dictionaries-字典。
那实际应用中我们更多的还是要去操作这些结构里的数据。比如,在列表后面添加元素,那么就会用到append() 方法。
那除了这些本身的操作方法之外,还有一个Python内建模块——collections,也提供了不少使用的方法,今天来捋一下。

一、Counter

这是一个计数器,我们可以用来方便的统计出一些元素出现的次数,比如String、List、Tuples等等。

String

from collections import Counter

c = Counter("HelloKitty")

print(c)

#运行结果:
Counter({'l': 2, 't': 2, 'H': 1, 'e': 1, 'o': 1, 'K': 1, 'i': 1, 'y': 1})

List

from collections import Counter

c = Counter(["苹果", "樱桃", 1, 1, 4, 4, 5])

print(c)

#运行结果:
Counter({1: 2, 4: 2, '苹果': 1, '樱桃': 1, 5: 1})

二、deque

我们很喜欢用list来存放数据,因为非常的方便。但是list的缺点也很明显,如果你是按索引访问元素就很快,但是插入和删除元素就很慢。
当然了,数据量小的时候肯定是感知不到的,只有当数据量大的时候,你才会发现这个缺点,因为list是线性数据结构,比如插入这个动作,需要把它后面的元素都挪一位。
deque除了实现list的append()和pop()外,还提供了appendleft()和popleft(),这样的话我们可以很方便的向着列表的另一头,进行添加和移除操作了。

from collections import deque

deque_list = deque(['a', 'b', 'c', 'd'])
deque_list.append('苹果')
deque_list.appendleft('吃')

print(deque_list)

#运行结果:
deque(['吃', 'a', 'b', 'c', 'd', '苹果'])

三、OrderedDict

使用Python,大家自然知道Dict字典中的key是无序的。那如果你想要保持key的顺序的话,用OrderedDict即可。

from collections import OrderedDict

list_a = [(1, "苹果"), (2, "香蕉"), (3, "西瓜"), (4, "芒果")]

order_dict = OrderedDict(list_a)
print(order_dict)

#运行结果:
D:\Daily
λ python whatiscollections.py
OrderedDict([(1, '苹果'), (2, '香蕉'), (3, '西瓜'), (4, '芒果')])

如果有场景中需要使用到,可以试试这几种用法。

以上就是了解一下python内建模块collections的详细内容,更多关于python collections的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python共享引用(多个变量引用)示例代码
Dec 04 Python
Python跳出循环语句continue与break的区别
Aug 25 Python
Python代码解决RenderView窗口not found问题
Aug 28 Python
Python单元测试实例详解
May 25 Python
Flask模拟实现CSRF攻击的方法
Jul 24 Python
python的re模块使用方法详解
Jul 26 Python
Python学习笔记之集合的概念和简单使用示例
Aug 22 Python
Django中提示消息messages的设置方式
Nov 15 Python
使用Python的Turtle绘制哆啦A梦实例
Nov 21 Python
python jenkins 打包构建代码的示例代码
Nov 29 Python
Python实现括号匹配方法详解
Feb 10 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
Mar 11 Python
Python pymsql模块的使用
Sep 07 #Python
Python虚拟环境的创建和使用详解
Sep 07 #Python
python用Tkinter做自己的中文代码编辑器
Sep 07 #Python
利用Python将图片中扭曲矩形的复原
Sep 07 #Python
python利用递归方法实现求集合的幂集
Sep 07 #Python
Python描述数据结构学习之哈夫曼树篇
Sep 07 #Python
python简单利用字典破解zip文件口令
Sep 07 #Python
You might like
phpBB BBcode处理的漏洞
2006/10/09 PHP
用PHP+java实现自动新闻滚动窗口
2006/10/09 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
jQuery使用height()获取高度需要注意的地方
2014/12/13 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
vue2.X组件学习心得(新手必看篇)
2017/07/05 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
Vue表情输入组件 微信face表情组件
2019/02/11 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
python 编程之twisted详解及简单实例
2017/01/28 Python
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
Python中的Django基本命令实例详解
2018/07/15 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
重阳节登山活动方案
2014/02/03 职场文书
安全标准化汇报材料
2014/02/03 职场文书
双拥工作宣传标语
2014/06/26 职场文书
员工工作表现自我评价
2015/03/06 职场文书
生产车间管理制度
2015/08/04 职场文书
六一亲子活动感想
2015/08/07 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书