介绍
python 的dict实现 key:value 方式的存储,但没有顺序。
OrderedDict 实现了对字典中元素的排序
例子
import collections
d=collections.OrderedDict()
d['a']='A'
d['b']='B'
d['c']='C'
for k,v in d.items():
print(k,v)
执行结果:
a A
b B
c C
注意
由于 OrderedDict 进行了排序,所以 元素相同、但顺序不同的两个 OrderedDict 对象,Python会认为两个不同的对象
d1=collections.OrderedDict()
d1['a']='A'
d1['b']='B'
d1['c']='C'
d2=collections.OrderedDict()
d2['c']='C'
d2['a']='A'
d2['b']='B'
print(d1)
print(d2)
print(d1==d2)
执行结果:
OrderedDict([('a', 'A'), ('b', 'B'), ('c', 'C')])
OrderedDict([('c', 'C'), ('a', 'A'), ('b', 'B')])
False
即使元素相同,但顺序不同,python也认为是2个不同的对象
python3.6的dict也是有序的,但是,只要 元素相同 ,python就认为是同一对象
d1={}
d1['a']='A'
d1['b']='B'
d1['c']='C'
d2={}
d2['c']='C'
d2['a']='A'
d2['b']='B'
print(d1)
print(d2)
print(d1==d2)
执行结果:
{'a': 'A', 'b': 'B', 'c': 'C'}
{'c': 'C', 'a': 'A', 'b': 'B'}
True