为什么Python集合(使用相同内容)的迭代顺序在每次运行中都会变化?有哪些选项可以使其在每次运行中保持一致?
我了解Python集合的迭代顺序是任意的。如果我将'a','b'和'c'放入一个集合中,然后对它们进行迭代,它们可能以任何顺序返回。
我观察到的是,在程序运行期间,这个顺序保持不变。也就是说,如果我的程序连续两次迭代同一个集合,我两次都得到相同的顺序。但是,如果我连续运行程序两次,顺序会随着每次运行而改变。
不幸的是,这破坏了我的自动化测试之一,该测试只是比较程序两次运行的输出。我并不关心实际的顺序,但我希望它在每次运行中保持一致。
我想到的最好的解决方案是:
注意:我在StackOverlow上找到了类似的问题,但没有解决这个特定问题,即如何在每次运行中获得相同的结果。
我了解Python集合的迭代顺序是任意的。如果我将'a','b'和'c'放入一个集合中,然后对它们进行迭代,它们可能以任何顺序返回。
我观察到的是,在程序运行期间,这个顺序保持不变。也就是说,如果我的程序连续两次迭代同一个集合,我两次都得到相同的顺序。但是,如果我连续运行程序两次,顺序会随着每次运行而改变。
不幸的是,这破坏了我的自动化测试之一,该测试只是比较程序两次运行的输出。我并不关心实际的顺序,但我希望它在每次运行中保持一致。
我想到的最好的解决方案是:
- 将集合复制到列表中。
- 对列表应用任意排序。
- 遍历列表而不是集合。
注意:我在StackOverlow上找到了类似的问题,但没有解决这个特定问题,即如何在每次运行中获得相同的结果。