设置迭代顺序因运行而异

发布于 2021-01-29 18:37:18

为什么Python集合(具有相同内容)的迭代顺序会在每次运行之间变化,我有什么选择使其在每次运行之间保持一致?

我了解Python集合的迭代顺序是任意的。如果我将“ a”,“ b”和“ c”放入集合中,然后对其进行迭代,则它们可能会以任何顺序返回。

我观察到的是,该顺序在程序运行中保持不变。也就是说,如果我的程序连续两次对同一集合进行迭代,那么两次都将得到相同的顺序。但是,如果我连续两次运行该程序,则顺序会在运行之间变化。

不幸的是,这破坏了我的一项自动测试,该测试只是比较程序两次运行的输出。我不在乎实际的顺序,但我希望每次运行都保持一致。

我想出的最好的解决方案是:

  1. 将集合复制到列表。
  2. 将任意排序应用于列表。
  3. 迭代列表而不是集合。

有没有更简单的解决方案?

注意:我在StackOverlow上发现了类似的问题,但是没有一个问题解决了从运行到运行获得相同结果的特定问题。

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您想要的是不可能的。任意意味着任意。

    我的解决方案与您的解决方案相同,如果您希望将其与另一组进行比较,则必须对它进行排序。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看