在使用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,不来了解一下?的更多相关文章

  1. python常用内建模块 collections,bs64,struct,hashlib,itertools,contextlib,xml

    #  2  collections 是Python内建的一个集合模块,提供了许多有用的集合类. # 2.1 namedtuple #tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: p ...

  2. 25、typing导入Python的数据类型模块、collections集合模块

    一.typing模块 1.typing模块的作用 类型检查,防止运行时出现参数和返回值类型不符合. 作为开发文档附加说明,方便使用者调用时传入和返回参数类型. 该模块加入后并不会影响程序的运行,不会报 ...

  3. Python原生数据结构增强模块collections

    collections简介 python提供了4种基本的数据结构:list.tuple.dict.set.基本数据结构完全可以hold住所有的场景,但是在处理数据结构复杂的场景时,这4种数据结构有时会 ...

  4. 为新项目添彩的 10+ 超有用 JavaScript 库

    快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中.   <HTML开发Mac OS App 视频教程> 土豆网同步更新:http: ...

  5. Python超简单的HTTP服务器

    Python超简单的HTTP服务器 安装了python就可以 python -m SimpleHTTPServer 执行这一个命令即可实现一个HTTP服务器,将当前目录设为HTTP服务目录,可以通过h ...

  6. 常用myeclipse的快捷键,对菜鸟超有用的

    1. ctrl + h ,这个键超有用的,可以搜索当前项目的整个文件,并锁定到改文件的 具体位置.如图: 2.ctrl + o,在java文件内,搜索该文件下的所有方法.如图: ctrl + d ,删 ...

  7. 25个超有用的 AngularJS Web 开发工具

    AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的为静态文本展示设计的声明式语言,改善了JavaScript. 下面我要说的就是25个超有用的AngularJS工具, ...

  8. python超简单的web服务器

    今天无意google时看见,心里突然想说,python做web服务器,用不用这么简单啊,看来是我大惊小怪了. web1.py   1 2 3 #!/usr/bin/python import Simp ...

  9. python的常用模块之collections模块

    python的常用模块之collections模块 python全栈开发,模块,collections 认识模块 什么是模块?    常见的场景:一个模块就是一个包含了python定义和声明的文件,文 ...

随机推荐

  1. IPv4地址段、地址掩码、可用地址等常用方法

    package com.xxx.iptools; import java.util.ArrayList; import java.util.HashMap; import java.util.List ...

  2. CSS可见格式化模型

    1.盒模型 1.1 盒子大小 盒模型描述了元素如何显示,以及如何相互作用.相互影响. 页面中的所有元素都被看作一个矩形盒子,这个盒子包含元素的内容.内边距.边框和外边距. 给元素应用的背景会作用于元素 ...

  3. Linux安装配置PHPmyadmin

    进官网下载zip安装包 wget https://files.phpmyadmin.net/phpMyAdmin/5.0.1/phpMyAdmin-5.0.1-all-languages.zip 安装 ...

  4. Fixing the train-test resolution discrepancy

  5. java从零到变身爬虫大神

    刚开始先从最简单的爬虫逻辑入手 爬虫最简单的解析面真的是这样 import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import java. ...

  6. java 基本类型包装类

    一 基本类型包装类 1.包装类概述 Java中提供了相应的对象来解决实现字符串与基本数据之间转换问题,基本数据类 型对象包装类:java将基本数据类型值封装成了对象. 8种基本类型对应的包装类如下: ...

  7. Spring——IOC(控制反转)与DI(依赖注入)

    IOC与DI的理解及使用 控制反转IOC(Inversion of Control)是一种设计思想,DI(依赖注入)是实现IOC的一种方法.在没有IOC的程序中,我们使用面向对象编程,对象的创建于对象 ...

  8. MySQL元数据信息

    一.查看数据库清单 show databases; 二.查看数据库下表清单 方法1) show full tables from ${schema名}; 方法2) use ${数据库名}; show ...

  9. 串口线接Linux设备U盘安装系统和直接安装设备接显示屏2种方式不同

    Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x22 (or lat ...

  10. 计算机网络要点---Http

    计算机网络要点---Http 1.工作流程 一次HTTP操作称为一个事务,其工作过程可分为四步: 首先客户机与服务器需要建立 TCP 连接.只要单击某个超级链接,HTTP的工作开始. 建立连接后,客户 ...