设置是否确定?

2024-09-28 21:52:07 发布

您现在位置:Python中文网/ 问答频道 /正文

当你阅读诸如Get unique values from a list in python这样的问题时,你可以看到备注的顺序不能保留。在

这是可以理解的。是什么让我担心它会走得更远——正如我所看到的,执行甚至不是决定性的,即:

list(set(values_list))

我会得到唯一的值,问题是每次运行结果都会有不同的顺序。所以这意味着set(构造函数或枚举器)不是确定性的。在

我想知道这是怎么发生的?我看不出为什么单线程执行(?)你会得到非确定性的行为。在

当然,可以对结果进行排序以强制执行确定性行为,但一旦发现手头有非确定性代码,就可以得到这样的想法。

更新:

我的代码的精髓是一个包含10000个字符串的pickle(有3个唯一值)。在

^{pr2}$

每次跑步我都得到不同的顺序。哦,我用的是python3.6.4。在


Tags: 代码infromget排序顺序listunique
1条回答
网友
1楼 · 发布于 2024-09-28 21:52:07

到目前为止我还没有发现这个问题:

>>> values_list = range(100) * 3
>>> a = list(set(values_list))
>>> b = list(set(values_list))
>>> a == b
True
>>> 

相关问题 更多 >