【重要】collections库函数简介及简单用法示例

【重要】collections库函数简介及简单用法示例
collections提供了一些有用的集合类,如deque、Counter等,方便进行数据处理。
根据以下列表,用表格形式,从序号、函数名、简介、简单用法示例几方面显示每个函数的信息。太长的用法示例以序号+函数名+“示例:”为题,分别移到表格下方,不要破坏表格。

序号 函数名 简介 简单用法示例
1 path 内部使用,指向collections模块的位置 不直接用于用户代码
2 spec 内部使用,模块规格信息 不直接用于用户代码
3 _chain 内部使用,用于连接多个迭代器 不直接用于用户代码
4 _collections_abc 内部使用,抽象基类集合 不直接用于用户代码
5 _count_elements 内部使用,用于计数元素 不直接用于用户代码
6 _eq 内部使用,用于比较元素是否相等 不直接用于用户代码
7 _heapq 内部使用,堆队列算法实现 不直接用于用户代码
8 _iskeyword 内部使用,用于检查字符串是否为Python关键字 不直接用于用户代码
9 _itemgetter 内部使用,用于从对象中获取一个或多个属性 不直接用于用户代码
10 _nt_itemgetters 内部使用,用于命名元组的itemgetter 不直接用于用户代码
11 _proxy 内部使用,代理对象 不直接用于用户代码
12 _recursive_repr 内部使用,用于递归表示对象 不直接用于用户代码
13 _repeat 内部使用,用于重复对象 不直接用于用户代码
14 _starmap 内部使用,用于将函数与参数元组一起映射 不直接用于用户代码
15 _sys 内部使用,系统模块引用 不直接用于用户代码
16 defaultdict 默认字典,为不存在的键提供默认值 python\nfrom collections import defaultdict\n\n# 创建一个默认值为0的defaultdict\ndd = defaultdict(int)\n# 访问不存在的键时,返回默认值0\nprint(dd['a']) # 输出: 0\n
17 deque 双端队列,支持从两端添加和删除元素 python\nfrom collections import deque\n\n# 创建一个空的deque\ndq = deque()\n# 从右端添加元素\ndq.append(1)\ndq.append(2)\n# 从左端添加元素\ndq.appendleft(0)\n# 打印deque\nprint(dq) # 输出: deque([0, 1, 2])\n
18 namedtuple 命名元组,用于创建具有字段名的元组 python\nfrom collections import namedtuple\n\n# 创建一个命名元组Person\nPerson = namedtuple('Person', ['name', 'age', 'city'])\n# 创建一个Person对象\np = Person(name='Alice', age=30, city='New York')\n# 访问字段\nprint(p.name) # 输出: Alice\n

以下是一些函数的具体用法示例:

16. defaultdict示例

from collections import defaultdict

# 创建一个默认值为list的defaultdict
dd = defaultdict(list)
# 访问不存在的键时,返回默认值list
dd['a'].append(1)
dd['a'].append(2)
dd['b'].append(3)
print(dd)  # 输出: defaultdict(<class 'list'>, {'a': [1, 2], 'b': [3]})

17. deque示例(更多操作)

from collections import deque

# 创建一个空的deque
dq = deque()
# 从右端添加元素
dq.append(1)
dq.append(2)
# 从左端添加元素
dq.appendleft(0)
# 从右端删除元素
dq.pop()
# 从左端删除元素
dq.popleft()
# 打印deque
print(dq)  # 输出: deque([1])

18. namedtuple示例(更多操作)

from collections import namedtuple

# 创建一个命名元组Person
Person = namedtuple('Person', ['name', 'age', 'city'])
# 创建一个Person对象
p = Person(name='Alice', age=30, city='New York')
# 修改对象(注意:命名元组是不可变的,因此不能直接修改,但可以通过重新创建对象来模拟修改)
p_new = p._replace(age=31)
# 访问字段
print(p_new.name)  # 输出: Alice
print(p_new.age)   # 输出: 31
posted @ 2024-12-19 09:46  nxhujiee  阅读(80)  评论(0)    收藏  举报