Python multidict示例–将单个键映射到字典中的多个值
Python multidict 示例–将单个键映射到字典中的多个值
系列教程导航
- Python 基础教程
- 在 SublimeEditor 中配置 Python 环境
- Python 代码中添加注释
- Python 中的变量的使用
- Python 中的数据类型
- Python 中的关键字
- Python 字符串操作
- Python 中的 list 操作
- Python 中的 Tuple 操作
- Python max()和 min()–在列表或数组中查找最大值和最小值
- Python 找到最大的 N 个(前 N 个)或最小的 N 个项目
- Python 读写 CSV 文件
- Python 中使用 httplib2–HTTP GET 和 POST 示例
- Python 将 tuple 开箱为变量或参数
- Python 开箱 Tuple–太多值无法解压
- Python multidict 示例–将单个键映射到字典中的多个值
- Python OrderedDict–有序字典
- Python 字典交集–比较两个字典
- Python 优先级队列示例
1. 什么是 multidict 词典
在 Python 中,"multidict"一词用于指代一种特殊的字典结构,在这种字典中可以将单个键映射到多个值。例如:
multidictWithList = {
'key1': [1, 2, 3],
'key2': [4, 5]
}
multidictWithSet = {
'key1': {1, 2, 3},
'key2': {4, 5}
}在选择底层数据结构时,建议遵循以下原则:
- 如果要保留项目的插入顺序,请使用
list。 - 如果要消除重复项(并且不关心顺序),请使用
set。
2. multidict 词典构建示例
要轻松构建此类词典,可以使用 collections 模块中的 defaultdict。defaultdict 的功能在于它会自动初始化第一个值,因此您只需关注添加项目即可,无需手动检查键是否存在。
from collections import defaultdict
# list backed multidict
d1 = defaultdict(list)
d1['key1'].append(1)
d1['key1'].append(2)
d1['key1'].append(3)
d1['key2'].append(4)
d1['key2'].append(5)
# set backed multidict
d2 = defaultdict(set)
d2['key1'].add(1)
d2['key1'].add(2)
d2['key1'].add(3)
d2['key2'].add(4)
d2['key2'].add(5)
>>> d1
defaultdict(<type 'list'>, {'key2': [4, 5], 'key1': [1, 2, 3]})
>>> d1['key1']
[1, 2, 3]
>>> d2
defaultdict(<type 'set'>, {'key2': set([4, 5]), 'key1': set([1, 2, 3])})
>>> d2['key1']
set([1, 2, 3])学习愉快!
说明
本文示例中的输出格式(如<type 'list'>)基于 Python 2 环境。在 Python 3 中,类型显示通常为<class 'list'>,且set的字面量表示可能有所不同(如{1, 2, 3}),但defaultdict的核心用法保持一致。
版权声明:本文为原创文章,版权归 戴老师的博客 所有,转载请联系博主获得授权。
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。