你能否介绍一些不常见的Python容器类型?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1547个文字,预计阅读时间需要7分钟。
《Python技巧:The Book》第五章Python中的常见数据结构学习心得,重点介绍ChainMap、MappingProxyType、deque、PriorityQueue等不常用容器类以及heapq模块。以下通过示例进行介绍:
1. ChainMap:用于管理多个字典的视图,可以像访问单个字典一样访问所有字典。例如:
pythonfrom collections import ChainMapd1={'a': 1, 'b': 2}d2={'b': 3, 'c': 4}cm=ChainMap(d2, d1)print(cm['a']) # 输出:1print(cm['b']) # 输出:3
2. MappingProxyType:创建映射对象的代理,可以像访问原始映射一样访问代理。例如:
pythonfrom collections import MappingProxyTyped={'a': 1, 'b': 2}proxy=MappingProxyType(d)print(proxy['a']) # 输出:1
3. deque:双端队列,可以在两端添加或移除元素。例如:
pythonfrom collections import dequeq=deque([1, 2, 3])q.append(4)q.appendleft(0)print(q) # 输出:[0, 1, 2, 3, 4]
4. PriorityQueue:优先队列,元素按照优先级排序。
本文共计1547个文字,预计阅读时间需要7分钟。
《Python技巧:The Book》第五章Python中的常见数据结构学习心得,重点介绍ChainMap、MappingProxyType、deque、PriorityQueue等不常用容器类以及heapq模块。以下通过示例进行介绍:
1. ChainMap:用于管理多个字典的视图,可以像访问单个字典一样访问所有字典。例如:
pythonfrom collections import ChainMapd1={'a': 1, 'b': 2}d2={'b': 3, 'c': 4}cm=ChainMap(d2, d1)print(cm['a']) # 输出:1print(cm['b']) # 输出:3
2. MappingProxyType:创建映射对象的代理,可以像访问原始映射一样访问代理。例如:
pythonfrom collections import MappingProxyTyped={'a': 1, 'b': 2}proxy=MappingProxyType(d)print(proxy['a']) # 输出:1
3. deque:双端队列,可以在两端添加或移除元素。例如:
pythonfrom collections import dequeq=deque([1, 2, 3])q.append(4)q.appendleft(0)print(q) # 输出:[0, 1, 2, 3, 4]
4. PriorityQueue:优先队列,元素按照优先级排序。

