相关疑难解决方法(0)

设置迭代顺序因运行而异

为什么Python集的迭代顺序(具有相同的内容)因运行而异,以及从运行到运行使其一致的选项是什么?

我知道Python集的迭代顺序是任意的.如果我将'a','b'和'c'放入一个集合然后迭代它们,它们可能会以任何顺序返回.

我观察到的是,在一个程序的运行中,顺序保持不变.也就是说,如果我的程序连续两次迭代同一个集合,那么我两次都得到相同的顺序.但是,如果我连续两次运行程序,则顺序会从运行更改为运行.

不幸的是,这打破了我的一个自动化测试,它简单地比较了我的程序的两次运行的输出.我不关心实际的顺序,但我希望它在运行之间保持一致.

我提出的最佳解决方案是:

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

有更简单的解决方案吗?

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

python iteration set

20
推荐指数
5
解决办法
1万
查看次数

标签 统计

iteration ×1

python ×1

set ×1