python的常用模块之collections模块详解

yizhihongxing

Python的常用模块之collections模块详解

1. 什么是collections模块

Python提供了一个比较重要的模块:collections,这个模块包含了一些特殊容器类型,比原生的list、dict、tuple、set等容器类型要强大得多。

collections是Python内建的一个集合模块,提供了一系列有用的集合类,是对dict、list、set、tuple等内置容器类型的扩展。

在进行Python的高级编程时,collections模块是非常常用的一个类库,这个模块提供了一些非常实用的数据结构,可以极大的提高代码的效率和健壮性。

2. collections模块的核心数据类型

关于collections模块的核心数据类型,主要有以下几个:

  1. defaultdict

  2. deque

  3. Counter

  4. OrderedDict

  5. namedtupel

我们分别来说明一下这个五个核心数据类型。

2.1 defaultdict

defaultdict是一个字典类,可以指定一个default_factory函数,这个函数可以自动创建不存在的键值,从而避免了KeyError。

下面是一个示例:

from collections import defaultdict

d_int = defaultdict(int) # 相当于 d_int = {}
d_str = defaultdict(str) # 相当于 d_str = {}
d_list = defaultdict(list) # 相当于 d_list = {}
d_dict = defaultdict(dict) # 相当于 d_dict = {}

d_int[1] # 返回默认的值0
d_str["a"] # 返回默认的值""
d_list[0] # 返回默认的值[]
d_dict["key"] # 返回默认的值{}

2.2 deque

deque是“double-ended queue(双端队列)”的缩写,deque支持在两端进行queue操作。

Python中的list的特点是非常适合做一些操作,例如查找、尾部添加、头部删除,但是在头部添加、头部查找、尾部删除等操作中,list的性能不如deque。

下面是一个示例:

from collections import deque

d = deque()

d.append("a")
d.append("b")
d.append("c")

d.appendleft("d")

print(d)

输出结果为:

deque(['d', 'a', 'b', 'c'])

2.3 Counter

Counter是一个简单的计数器类,可以用来统计列表、元组等容器中元素出现的个数,可以按照value的值进行排序。

下面是一个示例:

from collections import Counter

c = Counter("hello world")

print(c)

输出结果为:

Counter({'l': 3, 'o': 2, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1, 'h': 1})

2.4 OrderedDict

OrderedDict是一个按照插入顺序排序的字典类。

下面是一个示例:

from collections import OrderedDict

d = OrderedDict()

d["a"] = 1
d["c"] = 3
d["b"] = 2

print(d)

输出结果为:

OrderedDict([('a', 1), ('c', 3), ('b', 2)])

2.5 namedtupel

namedtuple是一个命名元组类,可以将Tuple的元素按照名称进行访问。

下面是一个示例:

from collections import namedtuple

Student = namedtuple("Student", ["name", "age", "gender"])

s = Student("小明", 18, "男")

print(s.name)
print(s.age)
print(s.gender)

输出结果为:

小明
18
男

3. 小结

在本文中,我们介绍了Python中的collections模块,其中包含了一些非常实用的数据结构,如defaultdict、deque、Counter、OrderedDict和namedtupel等。切记在进行高级Python编程时,要熟练掌握这个模块的使用,可以极大的提高你的Python编程效率和健壮性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python的常用模块之collections模块详解 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python3爬虫之urllib携带cookie爬取网页的方法

    Python3爬虫之urllib携带cookie爬取网页的方法 对于需要登录的网站,我们需要在发送请求时携带cookie信息,才能够获取到网站的内容。在Python中,我们可以使用urllib库来发送网络请求,并在请求中携带cookie信息。 以下是使用urllib携带cookie进行爬取的完整攻略: 1、获取cookie 在发送请求时,我们需要先获取coo…

    python 2023年6月3日
    00
  • python 猴子补丁(monkey patch)

    Python猴子补丁(Monkey Patch)是一种在运行时动态修改代码的技术。通常用于在不修改源代码的情况下,改变代码的执行方式或增加功能。在某些情况下,它可以是解决问题的有效方式,但是滥用这种技术可能会导致代码混乱和难以维护。 什么是猴子补丁? 在Python中,所有的变量和函数都存储在命名空间(Namespace)中。Python程序在执行时,会按照…

    python 2023年6月3日
    00
  • Python3使用xlrd、xlwt处理Excel方法数据

    下面来详细讲解一下“Python3使用xlrd、xlwt处理Excel方法数据”的完整实例教程。这里我们首先介绍一下xlrd和xlwt两个库。 1. xlrd和xlwt库介绍 xlrd是一个用来读取Excel文件的Python库,能够支持.xls格式的Excel文件,但是不支持.xlsx格式的文件。xlwt则是一个用来写Excel文件的Python库,支持.…

    python 2023年5月13日
    00
  • Python实现自动整理文件的示例代码

    下面是Python实现自动整理文件的示例代码的完整攻略,包含以下步骤: 创建项目目录 首先,我们需要在本地创建一个项目目录,作为我们整理文件的基础。可以选择在桌面或其他文件夹中创建,以下是示例目录结构: automate-files/ ├── organize.py ├── desktop/ │ ├── documents/ │ ├── images/ │ …

    python 2023年5月19日
    00
  • 对python 匹配字符串开头和结尾的方法详解

    当我们需要匹配字符串的开头或结尾时,Python 提供了多种方法来实现。下面将详细讲解这些方法。 1. 使用startswith()和endswith()方法 Python 字符串对象提供了 startswith() 和 endswith() 方法,可以用于检查字符串是否以指定的前缀或后缀开头或结尾。这两个方法都返回布尔值,如果字符串以指定的前缀或后缀开头或…

    python 2023年5月14日
    00
  • PyCharm在win10的64位系统安装实例

    下面是我们来介绍一下“PyCharm在Win10的64位系统安装实例”。 安装前准备 在进行安装前,我们需要先检查一下系统环境是否满足安装要求。 确认系统版本 首先我们需要确认一下自己的Windows系统版本是否是64位系统。 打开“设置”-“系统”-“关于”,在“系统类型”一栏中可以看到系统的位数,确保是“64位操作系统”。 安装Python 在安装PyC…

    python 2023年5月30日
    00
  • Python实现爬取并分析电商评论

    Python实现爬取并分析电商评论 Python是一种功能强大的编程语言,可以用来实现各种各样的任务。其中,爬取电商网站的评论数据并进行分析是Python的一个非常常见的应用场景。本文将介绍如何使用Python实现这一任务,涵盖以下内容: 环境准备 网站选择 网站分析 爬取评论数据 数据分析 环境准备 在进行任何Python项目之前,首先需要安装Python…

    python 2023年5月14日
    00
  • 利用python将 Matplotlib 可视化插入到 Excel表格中

    安装依赖和库 首先需要Python版本大于等于3.6,并在环境变量中配置好Python路径。 在命令行窗口中使用pip命令安装openpyxl、pandas和matplotlib库: pip install openpyxl pip install pandas pip install matplotlib 创建Excel表格 在Python代码中创建Exc…

    python 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部