?1.字典类型简介
字典(dict)是存储key/value数据的容器,也就是所谓的map、hash、关联数组。无论是什么称呼,都是键值对存储的方式。
在python中,dict类型使用大括号包围:
1 D = {"key1": "value1", 2 "key2": "value2", 3 "key3": "value3"}
2.字典元素的顺序改变
因为元素存储到dict的时候,都经过hash()计算,且存储的实际上是key对应的hash值,所以dict中各个元素是无序的,或者说无法保证顺序。所以,遍历dict得到的元素结果也是无序的。
1 # python 3.5.2 2 >>> d = {'one': 1, 'two': 2, 'three': 3, 'four': 4} 3 >>> d 4 {'four': 4, 'two': 2, 'three': 3, 'one': 1}
无序是理论上的。但是在python 3.7中,已经保证了python dict中元素的顺序和插入顺序是一致的。
3.字典和列表的比较
python中list是元素有序存储的序列代表,dict是元素无序存储的代表。它们都可变,是python中最灵活的两种数据类型。
但是:
- dict的元素检索、增删改速度快,不会随着元素增多、减少而改变。但缺点是内存占用大
- list的元素检索、增删改速度随着元素增多会越来越慢(当然实际影响并没有多大),但是内存占用小
换句话说,dict是空间换时间,list是时间换空间。
其实从dict和list的数据结构上很容易可以看出dict要比list占用的内存大。不考虑存储元素的实际数据空间,list存储每个元素只需一个指针共8字节(64位机器)即可保存,而dict至少需要24字节(64位机器),不仅如此,hash表结构中每个hash桶基本上会空余1/3以上的空间。
觉得文章还可以的话不妨收藏起来慢慢看,有任何意见或者看法欢迎大家评论!
我是一名python开发工程师,整理了一套python的学习资料,如果你对编程感兴趣,关注我并在后台私信小编:“08”即可免费领取资料!希望对你能有所帮助!
??