【问题标题】:Dictionary value is different in input and different in output [duplicate]字典值输入不同,输出不同[重复]
【发布时间】:2018-05-29 09:12:02
【问题描述】:

我在使用字典时在 Python 3 中遇到了一些错误。输入输出不匹配

【问题讨论】:

  • 在此处复制粘贴您的代码。图片无济于事。
  • 字典排序
  • 字典在python中没有排序,所以不会保留顺序。改用 OrderedDict:docs.python.org/2/library/collections.html
  • 通常你不能依赖字典中的任何排序,但是,如果你使用 Python >= 3.7 字典保持插入顺序 = 如你所料。 CPython 实现 >= 3.6 也是如此。

标签: python python-3.x dictionary


【解决方案1】:

您得到的不是错误。首先阅读字典:https://www.w3schools.com/python/python_dictionaries.asp

字典不能用作列表。他们没有秩序。它们是哈希数据结构,将键与值强绑定。 5 将始终与 "five" 绑定,4 将始终与 "four" 绑定。如果您输入dict1[5],您将始终得到'five'。在字典中,排列顺序并不重要,因为 python 使用复杂的算法来保持键值受散列约束,并且这些算法可能会改变排列顺序,但排列顺序对我们来说无论如何在字典中并不重要。

切勿将字典用作列表。字典是键值对的集合,您可以通过键访问值。列表就像数组一样,您可以通过索引访问值。

【讨论】:

  • 这有点过时了。 Python >= 3.7 字典维护插入顺序,3.6 CPython 实现也是如此。
  • 我不确定3.7,但仍然在这个问题的上下文中,字典中的排列顺序应该是无关紧要的。顺便说一句,感谢您向我更新有关 3.7 的信息 :)
  • 感谢您在这方面帮助我,我是 python 新手,所以我不太了解它。
猜你喜欢
  • 1970-01-01
  • 2016-11-11
  • 2019-10-16
  • 1970-01-01
  • 1970-01-01
  • 2021-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多