众所周知,Python有其自己的常规数据类型英雄 — 列表、元组、字典和臭名昭著的集合。但与此同时,Python的正义联盟还有一个超人 — 名为Collections的模块。在本文中,我们将深入探讨Collections的世界,了解其使用案例和优势。
Python中的collections模块实现了一组专门的容器数据类型,提供了替代Python内置数据类型(如列表、元组、集合和字典)的选择。
让我们了解collections模块中每个功能的重要性。
namedTuple
是collections模块中提供的一个简便方式,用于创建一个用于存储结构化数据的类,而无需定义一个完整的类。它们被转换为类,我们可以根据每个标识符的名称而不是索引来访问它们,而不是通过索引访问元组。
在上面的示例中,第2行创建了一个名为Employee的namedTuple,它包含Employee的姓名、ID和年龄。这将创建一个类变量,可用于存储Employee记录。
namedTuple也可以使用索引访问,如第3行所示,它们可以轻松转换为字典,并支持元组解包。
Counter
Counter,顾名思义,用于计算集合(列表、元组和字符串)中元素的出现次数。它返回一个以元素为键,出现次数为值的字典。
如示例所示,Counter以字典格式返回列表中每个特定元素的出现次数。Counter的most_common(k)方法返回出现次数最多的k个元素。我们还可以执行计数器的加法、减法、交集和并集操作。
deque
通常称为双端队列,是双端队列的缩写形式。它用作优化的列表,可以轻松地从两端插入和删除元素,时间复杂度为O(1)。
如上所示,可以使用append和append-left方法轻松地在两端添加元素。
与列表类似,deque提供了反转、旋转操作以及弹出、弹出左侧方法来从两端删除元素。
ChainMap
用于将多个字典组合成一个单一的视图,而无需复制数据。顾名思义,映射(字典)被组织成一个链,我们可以按照相同的顺序访问和搜索它们。如果一个键在两个字典中都存在,则链中最新的字典始终优先。
defaultdict
用于创建一个具有默认值的字典。字典和defaultdict的区别在于,当我们使用defaultdict并尝试访问一个不存在的键时,它会返回指定的默认值,而不是引发键错误。
OrderedDict
是一个记住元素输入顺序的字典。当我们尝试访问OrderedDict时,它将按照元素插入的顺序返回这些元素。
UserDict
UserDict在我们希望创建具有自定义行为的字典时非常有用。假设我们想创建一个字典,其中输入的值会自动转换为大写,那么UserDict就能帮助你。
对于UserList和UserString也适用相同的规则。
分享colab笔记本:code。
快乐学习……