字典的无序是指数据存进字典的递次跟掏出字典的递次不一致
Python2的字典是无序的
>>> d = {'a':-1,'b':-1,'c':-1}>>> d {'a': -1, 'c': -1, 'b': -1}>>> for k,v in d.items(): ... print k,v ... a -1c -1b -1
那怎样坚持字典有序呢?运用OrderedDict
>>> from collections import OrderedDict >>> d = OrderedDict() >>> d['a'] = 1 >>> d['b'] = 2 >>> d['c'] = 3 >>> d OrderedDict([('a', 1), ('b', 2), ('c', 3)]) >>> for k,v in d.items(): ... print k,v ... a 1 b 2 c 3
那为何会是无序的呢?哈希构造会有一个head地点,内里的数据会疏散到差别的列表链,所以看似是无序的,但关于统一组字典,总须要有一个标识去贯穿连接,所以读取时也会按存储递次取数据,只是不会按特定划定规矩分列。
Python3中字典是有序的
>>> d = {'a':-1,'b':-1,'c':-1} >>> d {'a': -1, 'b': -1, 'c': -1} >>> for k,v in d.items(): ... print(k,v) ... a -1 b -1 c -1
以上就是python字典有递次吗的细致内容,更多请关注ki4网别的相干文章!