在 Python 中,OrderedDict 是一个有序的哈希映射(即有序的字典),它在插入顺序上保持键的顺序。这在需要记住元素添加顺序的情况下非常有用,比如在需要顺序访问字典元素的时候。OrderedDict 是 Python 标准库 collections 模块的一部分。
导入 OrderedDict
from collections import OrderedDict
创建 OrderedDict
# 创建一个空的 OrderedDict
ordered_dict = OrderedDict()
# 使用键值对初始化 OrderedDict
ordered_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
print(ordered_dict)
插入元素
插入元素时,OrderedDict 会按照插入顺序记住键的顺序。
ordered_dict['d'] = 4
ordered_dict['e'] = 5
print(ordered_dict)
访问元素
与普通字典类似,可以通过键来访问元素。
print(ordered_dict['a']) # 输出:1
更新元素
更新元素时,不会改变元素的顺序。
ordered_dict['a'] = 10
print(ordered_dict)
删除元素
可以使用 pop 方法或 popitem 方法来删除元素。
# 删除特定元素
ordered_dict.pop('b')
print(ordered_dict)
# 删除最后一个元素
ordered_dict.popitem()
print(ordered_dict)
迭代 OrderedDict
可以像普通字典一样迭代 OrderedDict,但会按插入顺序迭代。
for key, value in ordered_dict.items():
print(f'{key}: {value}')
比较 OrderedDict
OrderedDict 可以比较,比较的是顺序和内容。
od1 = OrderedDict([('a', 1), ('b', 2)])
od2 = OrderedDict([('a', 1), ('b', 2)])
od3 = OrderedDict([('b', 2), ('a', 1)])
print(od1 == od2) # 输出:True
print(od1 == od3) # 输出:False