Python中的集合无序性可以视为随机顺序吗?

20 投票
5 回答
6197 浏览
提问于 2025-04-15 22:51

我想知道,Python内置的set结构没有元素顺序,这种情况算不算“足够随机”。比如说,当我获取一个集合的迭代器时,它能被看作是对集合元素的一个随机排列吗?

(如果有影响的话,我是在Windows系统上运行Python 2.6.5。)

5 个回答

6

这里有一点要说明一下关于顺序的重要性。看起来在同样的运行环境下,这个顺序是非常不可靠的。

举个例子,这段代码会给出不同的结果:

data = 'KSRNDOW3GQ'
chars = set(data)
print(list(chars))

在这里输入图片描述

6

简单来说,答案是否定的:

>>> list(set(range(10000))) == list(range(10000))
True
37

不,这个不是随机的。它是“任意排序的”,这意味着你不能指望它是有序的或者随机的。

撰写回答