Python 中的集合:你需要知道的一切

已发表: 2021-04-09

Python是一种强大的编程语言。 它是模块化的,以其简单性、可重用性和可维护性而闻名。 在模块化编程中,大型而复杂的编程任务被分解成更小的模块。

本文讨论Python 中的模块集合 Collection 改进了功能,是 Python 的通用内置 dict、list、set 和 tuple 容器的替代品。

“Python 列表、元组、集合和字典是用户定义的数据结构,每个都有自己的优点和缺点。”

目录

Python 模块

模块是包含 Python 定义和实现一组函数的语句的文件。 import 命令用于从其他模块导入模块。 Python 有几个内置模块。

现在让我们来到文章的重点,详细学习Python中的模块集合。

Python 中的集合

Python中的 Collection 是存储数据集合的容器。 List、set、tuple、dict 等是Python 中的内置集合 Python 中有六个集合模块,它们提供额外的数据结构来存储数据集合。 这些 Python 模块增强了内置容器集合的操作。

我们现在将讨论Python模块中的集合提供的不同容器。

1.有序字典

OrderedDict() 的工作方式类似于字典对象,其中键保持插入的顺序。 如果你想再次插入key,之前的值会被覆盖,key的位置不会改变。

例子:

从集合中导入 OrderedDict

d1=collections.OrderedDict()

d1['A']=1

d1['B']=2

d1['C']=3

d1['D']=4

对于 d1.items() 中的 x,v:

打印 (x,v)

输出:

1

乙二

C 3

4

2.双端队列()

Python deque() 是一个优化的列表,可以从两个极端添加和删除项目。

例子:

从集合中导入双端队列

list1 = [“a”,”b”,”c”]

deq = deque(list1)

打印(deq)

输出:

双端队列(['a','b','c'])

3.计数器

计数器是对可散列对象进行计数的字典对象的子组。 计数器函数输入可迭代作为参数,并将输出作为字典返回。 键是可迭代元素,值是元素在可迭代元素中出现的总次数。

例子:

从集合中导入计数器

c = 计数器()

list1 = [1,2,3,4,5,7,8,5,9,6,10]

计数器(list1)

计数器({1:5,2:4})

list1 = [1,2,4,7,5,1,6,7,6,9,1]

c = 计数器(列表 1)

打印(c[1])

输出:

3

附加计数器功能

1.elements()函数

elements()函数返回Counter对象中存在元素列表。

例子:

c = 计数器({1:4,2:3})

打印(列表(c.elements()))

输出:

[1,1,1,1,2,2,2]

在这里,使用字典参数创建一个Counter对象。 1 的计数为 4,2 的计数为 3。调用函数elements()c对象返回一个迭代器。

2. most_common() 函数

Counter() Python 函数返回一个无序字典,而most_common()函数根据每个元素计数对其进行排序。

例子:

列表 = [1,2,3,4,5,5,5,7,3]

c = 计数器(列表)

打印(c.most_common())

输出:

[((5,3), (1,1),(2,1),(3,2),(4,1), (7,1))]

在这里, most_common函数根据元素的计数返回一个排序列表。 5 来了 3 次; 因此,它作为列表的元素首先出现。

3. 减法()函数

subtract()考虑可迭代或映射参数,并用参数减去元素计数。

例子:

c = 计数器({1:2,2:3})

输出= {1:1,2:1}

c.减法(输出)

打印(c)

输出:

计数器({1:1,2:2})

4. 链图对象

Chainmap 类将多个字典分组以创建单个列表。 链接字典是公共的,可以通过 map 属性访问。

例子:

从集合中导入链图

dict1 = {'w':1,'x':2}

dict2 = {'y':3。'z':4}

链映射 = 链映射(dict1,dict2)

打印(chain_map.maps)

输出:

[{'x' : 2, 'w' :1}, {'y' : 3, 'x':4}]

5.命名元组

namedtuple() 函数返回一个元组对象,其中包含元组中每个位置的名称。 引入它是为了消除记住元组对象的每个字段的索引的问题。

例子:

从集合中导入命名元组

学生 = namedtuple ('学生','名, 姓, 年龄')

s1 = 学生('Tom'、'Alter'、'12')

打印(s1.firstname)

输出:

学生(名字='汤姆',姓氏='Alter',年龄='12')

在此示例中,您可以访问类的任何实例的字段。

6.默认字典

Python defaultdict() 是一个字典对象,是 dict 类的子类。 它提供所有字典方法,但将第一个参数作为默认数据类型。 当您访问不存在的密钥时,它会引发错误

例子:

从集合中导入 defaultdict

num = defaultdict(int)

数字['一个'] = 1

数字['两个'] = 2

打印(数字['三个'])

输出:

0

结论

众所周知,Python 中的集合可以改进 Python 集合模块 这些集合是在 2.4 版本的 Python 中引入的。 在后续版本中可以预期会有很多变化和改进。 在本文中,我们通过示例解释了Python 中现有的六个集合以及它们在该语言中的实现方式。 从学习者的角度来看,它们是最重要的概念之一。

通过upGrad独有的计算机应用学士程序学习Python 中的集合 该计划涵盖了进入 IT 行业所需的必要技能。

如果您想了解 Python、数据科学,请查看 IIIT-B 和 upGrad 的数据科学执行 PG 计划,该计划专为在职专业人士而设,提供 10 多个案例研究和项目、实用的实践研讨会、与行业专家的指导,与行业导师一对一,400 多个小时的学习和顶级公司的工作协助。

在线学习世界顶尖大学的数据科学课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

为什么我们需要 Python 中的集合模块?

Python 已经有 4 种内置的集合数据类型。 它们是列表、元组、字典和集合。 但是,这些数据容器用于一般目的。
以下几点突出了使用收集模块相对于内置数据容器的主要优势。
集合模块提供了这些容器的专用版本,例如 namedtuple、OrderedDict、defaultdict、chainmap、counter 等等。
由于更加优化,这些容器被证明是传统数据容器(如列表、元组和集合)的更好替代品。
收集模块可以有效地处理结构化数据。
像 namedtuple 这样的数据容器消耗更少的内存并提供增强的操作来存储和管理数据。

Python中的字典和有序字典有什么区别?

Python 字典或“Dict”是 Python 的内置数据结构,用于存储无序的元素集合。 与其他存储单个值的 Python 数据结构不同,字典数据结构存储键值对,其中每个键都是唯一的。 它不记得键值对的插入顺序并遍历键。
另一方面,Ordered Dictionary 或 OrderedDict 会跟踪键值对的插入顺序。 由于它的双向链表实现,它还比 Python 中的常规字典消耗更多的内存。 如果您删除并重新插入相同的键,它将被插入到原来的位置,因为 OrderedDict 会记住插入顺序。

namedtuple 的各种操作是什么?

Python 中的 namedtuple 执行各种操作。 以下是 namedtuple 执行的一些最常见操作的列表。
1. 访问操作:按索引访问:namedtuple 中的元素可以通过其索引访问,这与字典不同。 按键名访问:访问元素的另一种方法是通过键名。
2.转换操作: make():这个函数返回一个namedtuple。 _asadict():此函数返回从映射值构造的有序字典。 使用“**”(双星)运算符:此函数将 Python 字典转换为命名元组。
3. 附加操作: _fileds():该函数返回给定命名元组的所有键名。 _replace():此函数将键名作为其参数并更改映射到它的值。