龙空技术网

python字典类型、字典元素的顺序改变、字典和列表的比较

最爱脆啵啵 140

前言:

现在大家对“python字典序排列”都比较重视,姐妹们都需要了解一些“python字典序排列”的相关知识。那么小编也在网摘上汇集了一些有关“python字典序排列””的相关文章,希望你们能喜欢,姐妹们快快来学习一下吧!

​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.22 >>> d = {'one': 1, 'two': 2, 'three': 3, 'four': 4}3 >>> d4 {'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”即可免费领取资料!希望对你能有所帮助!

​​

标签: #python字典序排列