资讯专栏INFORMATION COLUMN

Python中的字典到底是有序的吗

aervon / 2334人阅读

摘要:并且中会显示,的版本在中已经不再支持了。接下来再看下以上版本的效果以版本为例从上图可以看出,在新的版本中,针对的存储已经变为有序,在遍历和打印的时候,会按照存储的顺序进行取值。再补充一点之前介绍到,在字典中,是唯一的。

之前写了文章介绍python中的列表和字典,在文章中描述到了python中的列表是有序的,字典是无序的,后来有粉丝在群里提醒我,说python3.6的版本之后,字典是有序的,因此,我找了一个低版本的python来验证一下效果:

首先,从官网下载python3.4的版本,然后编写一行代码验证一下打印字典的所有key。查看打印出来的key的顺序:

Python3.6以下版本:(以3.4版本为例)

你该不会以为只有使用keys()函数是无序的吧:

从上图可以看出,分别在cmd窗口和pycharm中打印字典的key值,发现打印的顺序每次重新在一个新的窗口运行,打印的顺序都不一致。并且pycharm中会显示,python3.4的版本在pycharm中已经不再支持了。

接下来再看下python3.6以上版本的效果:(以3.9版本为例)

从上图可以看出,在新的版本中,python针对key的存储已经变为有序,在遍历和打印的时候,会按照存储的顺序进行取值。

再补充一点:之前介绍到,在字典中,key是唯一的。这里并不是说写了不唯一的key就会报错,只是会用后面的key和value去覆盖前面的key和value。

a = {"a": 1, "b": 2, "b": 3}   # 在运行的时候不会报错

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/121424.html

相关文章

  • Python字典小结

    摘要:我们用函数,来简单快捷地创建这个字典输出结果与原先代码一致。示例代码如下版本为无序字典有序字典输出的结果为无序字典有序字典默认字典是内建类的一个子类,第一个参数为属性提供初始值,默认为。   字典(dict)结构是Python中常用的数据结构,笔者结合自己的实际使用经验,对字典方面的相关知识做个小结,希望能对读者一些启发~ 创建字典   常见的字典创建方法就是先建立一个空字典,然后逐一...

    BoYang 评论0 收藏0
  • Python 有序字典简介

    摘要:有序字典简介示例有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的。 有序字典-OrderedDict简介 示例 有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的。参见下面的例子: import collections print Regular dictionary: d = {} d[a] = ...

    DrizzleX 评论0 收藏0
  • python3.7的字典有序

    摘要:表容量更新的前后,它的键之间的相对顺序是会变化的,因此字典的元素是无序的。而且字典扩容和缩容时要按照的顺序来保持字典始终有序。旧的字典总会预留大于的容量的位置,防止碰撞过多影响效率。 python3.7的字典是有序的 旧结构 python3.7之前的字典结构,经典粗暴的hash表实现方式,这样的话每次hash表的扩容和缩容都可能导致hash值的改变。 hash表容量更新的前后,它的键之...

    iamyoung001 评论0 收藏0
  • Python入门-第一章Python基础(2)

    摘要:例如使用表示年龄,使用表示年份等。如下图所例以存储数据的变量标识符为和存储数据的变量标识符为为例,表示变量与内存单元之间的关系。用于设定分隔符,默认使用空格作为分隔。 1.2    标识符和关键字 1.2.1     标识符 在日常生活中我们为了方便我们在行为、语言等方面进行沟通与交流,我们...

    freewolf 评论0 收藏0
  • 流畅的 Python - 2. 字典与集合

    摘要:模块中还有其他的映射类型,一个是有序字典,方法也有不同,它默认删除并返回最后一个元素。这使得他们的查找效率很高,受数据量影响很小。在字典和集合中,除了标准的字典和集合,之前只用到了有序字典。而在合适的场合,标准类型之外的字典和集合会更适合。 字典是我们经常用到一种数据类型,而且也很方便。虽然用得很多,但是我对它的操作也仅限于取值,赋值,创建新字典。 首先出现是两个抽象基类,为dict和...

    xuhong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<