怎么使用 Python 内置库 collections?

Posted 黑马程序员官方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么使用 Python 内置库 collections?相关的知识,希望对你有一定的参考价值。

Python 内置库 collections 提供了一些方便的数据类型和函数,可以在处理数据时提供更高效的方法。以下是一些常见的使用方法:

Counter:计数器

collections.Counter 类可以用来计算序列中元素的出现次数,并以字典的形式返回结果。

from collections import Counter

my_list = ['apple', 'banana', 'apple', 'cherry', 'cherry', 'cherry']
my_counter = Counter(my_list)
print(my_counter)  # Counter('cherry': 3, 'apple': 2, 'banana': 1)

defaultdict:默认字典

collections.defaultdict 类是一个字典,它可以自动为缺失的键添加默认值。

from collections import defaultdict

my_dict = defaultdict(int)  # 默认值为 int 类型的 0
my_dict['a'] += 1
my_dict['b'] += 2
print(my_dict)  # defaultdict(<class 'int'>, 'a': 1, 'b': 2)

deque:双向队列

collections.deque 类是一个双向队列,可以在队列的两端高效地添加或删除元素。

from collections import deque

my_deque = deque([1, 2, 3])
my_deque.appendleft(0)
my_deque.append(4)
print(my_deque)  # deque([0, 1, 2, 3, 4])

namedtuple:命名元组

collections.namedtuple 类是一个工厂函数,用来创建一个具有命名字段的元组类。

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p.x, p.y)  # 1 2

以上是 collections 中的几个常用类,当然 collections 还有很多其他的类和函数,可以根据实际需要选择使用。

OrderedDict:有序字典

collections.OrderedDict 类是一个字典,它保留了键值对添加的顺序。

from collections import OrderedDict

my_dict = OrderedDict()
my_dict['a'] = 1
my_dict['b'] = 2
my_dict['c'] = 3
print(my_dict)  # OrderedDict([('a', 1), ('b', 2), ('c', 3)])

ChainMap:链式映射

collections.ChainMap 类可以将多个字典或映射对象链接在一起,形成一个逻辑上的单一映射。

from collections import ChainMap

dict1 = 'a': 1, 'b': 2
dict2 = 'c': 3, 'd': 4
chain_map = ChainMap(dict1, dict2)
print(chain_map['a'], chain_map['d'])  # 1 4

namedtuple 的一些高级用法

命名元组也可以使用 _make() 方法通过一个可迭代对象来创建一个新的实例。

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y'])
t = [1, 2]
p = Point._make(t)
print(p)  # Point(x=1, y=2)

另外,命名元组也可以使用 _asdict() 方法将其转换为一个有序字典。

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p._asdict())  # OrderedDict([('x', 1), ('y', 2)])

以上是 collections 中的一些常用类和函数,可以根据具体需求来选择使用。

以上是关于怎么使用 Python 内置库 collections?的主要内容,如果未能解决你的问题,请参考以下文章

二级Python----Python的内置函数及标准库(DAY 8)

python类库包括内置标准库和啥两大类

Python 2.7 学习笔记 内置语句函数标准库

Python标准库 -- 内置常量

Python标准库 内置函数hex x

python算法常用技巧与内置库