当前位置: 首页 > 知识库问答 >
问题:

python 3.7中的无序dict

杨选
2023-03-14

python中的字典是从python 3.6开始排序的

从-https://stackoverflow.com/a/39980744/4647107

词典是否在Python 3.6中排序?

它们是按顺序排列的。从Python3.6开始,对于Python的CPython实现,字典会记住插入项的顺序。这被认为是Python 3.6中的一个实现细节;如果希望插入顺序在其他Python实现中得到保证,则需要使用OrderedDict。

从Python3.7开始,这不再是一个实现细节,而是一个语言特性。来自GvR的python开发消息:

使它如此。“法令保持插入顺序”是裁决。谢谢!

这仅仅意味着你可以依赖它。Python的其他实现也必须提供插入有序字典,如果它们希望成为符合Python 3.7的实现。

现在有没有办法用python实现无序字典?

共有2个答案

刘升
2023-03-14

正如一些人所提到的,这将有助于理解您为什么想要一个无序的口述。就我个人而言,我正在寻找一个无序的口述,因为我正在处理有序的文档,而它们的行为意味着我无法使用=直接比较它们。例如:

In [1]: from collections import OrderedDict
In [2]: dict_1 = OrderedDict([('a', 0), ('b', 1), ('c', 2)])
In [3]: dict_2 = OrderedDict([('c', 2), ('b', 1), ('a', 0)])
In [4]: dict_1 == dict_2
Out[4]: False

解决这个问题的一个简单方法是将OrderedDector转回判决。

In [5]: dict(dict_1) == dict(dict_2)
Out[5]: True
郎诚
2023-03-14

你可以假装:

>>> import random
>>> d={'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]}
>>> items=list(d.items())
>>> random.shuffle(items)
>>> dict(items)
{'c': [7, 8, 9], 'b': [4, 5, 6], 'a': [1, 2, 3]}
>>> 
 类似资料:
  • 本文向大家介绍给ubuntu18安装python3.7的详细教程,包括了给ubuntu18安装python3.7的详细教程的使用技巧和注意事项,需要的朋友参考一下 参考文章 ubuntu源码安装python3 linux 编译安装python3.6的教程详解 准备工作 安装工具 正式开始 下载python文件 解压源码包 创建python安装路径 安装python 添加环境变量 在结尾添加 添加用

  • 本文向大家介绍python3.7简单的爬虫实例详解,包括了python3.7简单的爬虫实例详解的使用技巧和注意事项,需要的朋友参考一下 python3.7简单的爬虫,具体代码如下所示: 总结 以上所述是小编给大家介绍的python3.7简单的爬虫实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持! 如果你觉得本文对你有帮助,欢迎

  • 编辑18/02:因为我仍然没有解决方案,我正在更新我目前所知道的。 我已经成功安装了python 3.7。我可以使用pip(或pip3)安装模块,但这些模块是在Python3.6(ubuntu附带)中安装的。因此,我无法在Python3.7中导入这些模块(找不到模块)。Python3.7无法识别pip/pip3,因此我无法通过pip/pip3进行安装。我需要Python3.7 -- 我已经在我的U

  • 本文向大家介绍python3.7将代码打包成exe程序并添加图标的方法,包括了python3.7将代码打包成exe程序并添加图标的方法的使用技巧和注意事项,需要的朋友参考一下 1、环境 1、python 3.7 2、pyinstaller 2、下载方式: 2.1 python安装(略) 2.2 安装pyinstaller 打开DOS窗口输入以下命令: pip install pyinstaller

  • 本文向大家介绍python3.7通过thrift操作hbase的示例代码,包括了python3.7通过thrift操作hbase的示例代码的使用技巧和注意事项,需要的朋友参考一下 HBase是一个分布式的、面向列的开源数据库,其是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。其数

  • 最近我创建了一个flask应用程序,并决定在应用程序文件夹外添加一个测试文件夹(应用程序文件夹和测试文件夹都在同一个目录中)。我要测试的所有实现都包含在app文件夹中创建的包和模块中。 在两个文件夹中都有_init__u; py.py文件,正如预期的那样工作正常。但是,当我从测试文件夹中删除_uinit__uuu.py文件时,我开始体验moduleImportError。PythonDoc说,Py

  • 我有以下片段: 其中生成: 如果我从本(§无序执行)手册中正确理解:以上代码转换为<代码>((a b)c)d 。为了计算这个,CPU必须等待第一个括号和第二个括号,以此类推。在这里,我们看到LEA位于中间,这意味着它们不能并行执行(如果我理解正确的话)。因此,作者建议: 在“独立”对上写括号: 但这会生成相同的程序集: 相反,这是GCC(O2)为C生成的代码: 以下是输出: 我是否正确理解了手册?

  • 本文向大家介绍python3.7 openpyxl 在excel单元格中写入数据实例,包括了python3.7 openpyxl 在excel单元格中写入数据实例的使用技巧和注意事项,需要的朋友参考一下 本来我是想尝试,选中某个多个单元格复制到同一个sheet的其他位置,找了很多资料没有找到,目前只有这么一个办法,如果有大佬看到,欢迎补充请教。 补充知识:【openpyxl】python中对Exc