python的字典是无序的,通过字典的key值进行哈希化之后进行除余数,来计算出相应的内存地址,然后再这个内存地址上申请空间,并存入相应的value。
因为在显示的时候实际上是通过散列函数的随机抽取来还原字典的整个数据的。
所以它在python的表现上是一种无序的字典,一种哈希数组。
而且在python2.python3.7的中是无序的,而在python3.6种又是有序的。
主要的版本都是无序的,不能简单的认为字典就是有序的。
该数组插入数据的时候,还是按照顺序插入的,所以说字典的无序实际上应该是故意设计成这样,来达到一种key唯一值的目的,同时也减少因为key造成的冲突。
如果想使用一个有序字典那么就要从一开始就使用有序字典的容器,之后对该容器进行数据输入。
import collections
2 d1={}
3 d1=collections.OrderedDict() #将普通字典转换为有序字典
4 d1['a']='A'
5 d1['b']='B'
6 d1['c']='C'
7 d1['d']='D'
8 for k,v in d1.items():
9 print k,v
而在python里面 不可变类型的数据都是可以作为字典的key来存在的。
亦即 字符串,数字 ,元组、
参考资料 https://baike.baidu.com/item/%E5%93%88%E5%B8%8C%E8%A1%A8/5981869?fr=aladdin
网友评论