【问题标题】:Why does order of elements in a set differ in py2 and py3?为什么py2和py3中元素的顺序不同?
【发布时间】:2021-12-09 11:59:39
【问题描述】:

在py2中:

{1: {“1”, “2”, “7”, “3”, “4”, “9”, “8”}}

返回所有运行{1: set([‘1’, ‘3’, ‘2’, ‘4’, ‘7’, ‘9’, ‘8’])}

在py3中:

{1: {“1”, “2”, “7”, “3”, “4”, “9”, “8”}}

第一次运行返回{1: {“1”, “3”, “4”, “7”, “8”, “2”, “9”}}

返回第二次运行{1: {“2”, “4”, “9”, “7”, “1”, “3”, “8”}} dict 中的项目顺序不断变化。

我的主要问题是为什么它在每次运行时都会不断变化,以及如何解决它以便返回稳定的结果,就像在 py2 中一样?

【问题讨论】:

  • 那是一个集合 - 并且集合没有可靠的顺序。如何解决?改为使用列表。
  • @luk2302:现在订购了字典,但不是集合。
  • @Mahrkeenerh Microsoft 视觉工作室

标签: python set


【解决方案1】:

使用不同的结构(如列表或字典(自 Python 3.7 起)/OrderedDict)- 集合本身没有顺序概念。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2018-04-05
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多