Python中Collection()类的高级用法解析
发布时间:2024-01-09 08:23:44
在Python中,collection模块中的Collection类提供了一些高级用法,用于处理集合类型的数据。该类提供了一系列工具函数,可以进行集合的操作、统计和筛选。
下面是Collection类的几个高级用法解析,并附带使用例子:
1. Counter计数器
Counter计数器用于统计可迭代对象中元素的出现次数,返回一个字典,其中key为元素,value为出现次数。
from collections import Counter
lst = [1, 2, 3, 1, 2, 1, 3, 4, 5, 4, 3, 4]
counter = Counter(lst)
print(counter) # Counter({1: 3, 3: 3, 4: 3, 2: 2, 5: 1})
2. namedtuple命名元组
namedtuple命名元组用于创建一个具有字段名的元组,可以通过字段名访问元组的值。
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p.x, p.y) # 1 2
3. defaultdict带默认值的字典
defaultdict带默认值的字典可以设置默认值,当访问一个不存在的键时,返回默认值。
from collections import defaultdict d = defaultdict(int) print(d['key']) # 0
4. deque双端队列
deque双端队列可以在两端高效地进行插入和删除操作,比普通列表更适合于队列和栈的场景。
from collections import deque queue = deque([1, 2, 3]) queue.append(4) print(queue) # deque([1, 2, 3, 4]) queue.popleft() print(queue) # deque([2, 3, 4])
5. ChainMap链接字典
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['c']) # 1 3
6. 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)])
7. defaultdict(lambda)自定义默认值
defaultdict(lambda)可以通过lambda表达式设置自定义的默认值。
from collections import defaultdict d = defaultdict(lambda: 'default') print(d['key']) # default
8. namedtuple命名元组的属性和方法
namedtuple命名元组的属性和方法包括属性名、计数、索引、切片等。
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p._fields) # ('x', 'y')
print(len(p)) # 2
print(p[0], p[1]) # 1 2
print(p.x, p.y) # 1 2
这些是Collection()类的一些高级用法,可以通过这些函数和类对集合类型的数据进行处理、统计和筛选,提高开发效率。
