欢迎访问宙启技术站
智能推送

Python中Collection()类的常用方法介绍

发布时间:2024-01-09 08:22:01

Collection是Python中的一个内置模块,提供了一些常用的数据结构和算法。它包含了许多有用的方法,用于处理各种数据类型,例如列表、元组、字典、集合等。在这篇文章中,我们将介绍一些Collection类的常用方法,并提供相应的使用示例。

1. namedtuple

namedtuple()函数返回一个具有命名字段的元组子类。可以使用命名字段而不是位置来访问元组,这使得代码更加易读。

from collections import namedtuple

Person = namedtuple('Person', ['name', 'age', 'country'])
p1 = Person('Alice', 25, 'USA')
print(p1.name)  # 输出:Alice
print(p1.age)  # 输出:25
print(p1.country)  # 输出:USA

2. deque

deque是一个双端队列,提供了两端的高效操作。它可以在O(1)时间复杂度内进行插入和删除操作。

from collections import deque

d = deque([1, 2, 3, 4, 5])
d.append(6)
print(d)  # 输出:deque([1, 2, 3, 4, 5, 6])
d.appendleft(0)
print(d)  # 输出:deque([0, 1, 2, 3, 4, 5, 6])
d.pop()
print(d)  # 输出:deque([0, 1, 2, 3, 4, 5])
d.popleft()
print(d)  # 输出:deque([1, 2, 3, 4, 5])

3. Counter

Counter是一个计数器,用于统计可迭代对象中元素的数量。

from collections import Counter

c = Counter('abracadabra')
print(c)  # 输出:Counter({'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1})
print(c['a'])  # 输出:5
print(c['b'])  # 输出:2
print(c.most_common(2))  # 输出:[('a', 5), ('b', 2)]

4. defaultdict

defaultdict是一个字典的子类,用于设置默认值。当访问不存在的键时,返回默认值而不是抛出KeyError异常。

from collections import defaultdict

d = defaultdict(int)
d['a'] += 1
d['b'] += 2
print(d)  # 输出:defaultdict(<class 'int'>, {'a': 1, 'b': 2})

5. OrderedDict

OrderedDict是一个有序字典,会记住元素插入的顺序。

from collections import OrderedDict

d = OrderedDict()
d['a'] = 1
d['b'] = 2
d['c'] = 3
print(d)  # 输出:OrderedDict([('a', 1), ('b', 2), ('c', 3)])

6. ChainMap

ChainMap可以将多个字典合并为一个逻辑上的字典。

from collections import ChainMap

d1 = {'a': 1, 'b': 2}
d2 = {'c': 3, 'd': 4}
d3 = {'e': 5, 'f': 6}
d = ChainMap(d1, d2, d3)
print(d['a'])  # 输出:1
print(d['c'])  # 输出:3
print(d['e'])  # 输出:5

7. namedtuple的默认值

namedtuple还可以设置默认值,当访问不存在的字段时,返回默认值。

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y'], defaults=[0, 0])
p = Point()
print(p)  # 输出:Point(x=0, y=0)

8. Counter的操作

Counter类还提供了一些其他常用的方法,例如更新计数、计算元素总数、查找最常见的元素等。

from collections import Counter

c = Counter('abracadabra')
c.update('aaa')
print(c)  # 输出:Counter({'a': 8, 'b': 2, 'r': 2, 'c': 1, 'd': 1})
print(len(c))  # 输出:5
print(sum(c.values()))  # 输出:14
print(c.most_common(3))  # 输出:[('a', 8), ('b', 2), ('r', 2)]

以上是Collection模块中一些常用的方法及其示例。这些方法可以帮助我们更方便地处理不同类型的数据,提高代码的简洁性和执行效率。在实际应用中,可以根据具体的需求选择合适的方法来处理数据。