了解一下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实现在Linux系统下更改当前进程运行用户
Feb 04 Python
使用pyecharts在jupyter notebook上绘图
Apr 23 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
Python docx库用法示例分析
Feb 16 Python
用Python配平化学方程式的方法
Jul 20 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
Python中*args和**kwargs的区别详解
Sep 17 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
Jupyter notebook 远程配置及SSL加密教程
Apr 14 Python
基于python实现监听Rabbitmq系统日志代码示例
Nov 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
php数据库密码的找回的步骤
2011/01/12 PHP
php中ftp_chdir与ftp_cdup函数用法
2014/11/18 PHP
PHP对文件进行加锁、解锁实例
2015/01/23 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
Linux下快速搭建php开发环境
2017/03/13 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
如何快速上手Vuex
2017/02/14 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
vue+egg+jwt实现登录验证的示例代码
2019/05/18 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
Python算法应用实战之队列详解
2017/02/04 Python
django小技巧之html模板中调用对象属性或对象的方法
2018/11/30 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
Python figure参数及subplot子图绘制代码
2020/04/18 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
致共产党员倡议书
2014/04/16 职场文书
演讲稿祖国在我心中
2014/05/04 职场文书
关键在于落实心得体会
2014/09/03 职场文书
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
一文搞懂Python Sklearn库使用
2021/08/23 Python
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技