了解一下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删除java文件头上版权信息的方法
Jul 31 Python
python中的字典使用分享
Jul 31 Python
python logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
Python 的类、继承和多态详解
Jul 16 Python
Python实现迭代时使用索引的方法示例
Jun 05 Python
win8.1安装Python 2.7版环境图文详解
Jul 01 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 Python
Python实现粒子群算法的示例
Feb 14 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
Jun 23 Python
如何利用python实现Simhash算法
Jun 28 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
apache rewrite_module模块使用教程
2008/01/10 PHP
php sprintf()函数让你的sql操作更安全
2008/07/23 PHP
php通过ajax实现双击table修改内容
2014/04/28 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
php中smarty实现多模版网站的方法
2015/06/11 PHP
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
零基础之Node.js搭建API服务器的详解
2019/03/08 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
Python argv用法详解
2016/01/08 Python
python获取list下标及其值的简单方法
2016/09/12 Python
python3中int(整型)的使用教程
2017/03/23 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
2017/09/05 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
英国羊绒服装购物网站:Pure Collection
2018/10/22 全球购物
高三地理教学反思
2014/01/11 职场文书
培训主管的职业生涯规划
2014/03/06 职场文书
党员入党表决心的话
2014/03/11 职场文书
教师读书活动总结
2014/05/07 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
Django中celery的使用项目实例
2022/07/07 Python