4

似乎确实存在一些一致性,即调用set()字符串似乎总是解析为相同的(非字母)顺序,并且两者

set([1,2,3]) & set([1,2,3,4])

和它乱七八糟的表弟

set([2,3,1]) & set([4,3,1,2])

会导致看起来井井有条set([1,2,3])

另一方面,一些更活泼的东西,比如

from random import randint
set([randint(0,9) for x in range(3)])

有时会给出类似set([9, 6, 7])...

... 这里发生了什么?

4

1 回答 1

5

您应该将集合视为无序集合

它们存储在哈希表中。

此外,随着您继续添加元素,散列将转移到更大的表中,因此顺序可能会发生巨大变化。

不能保证不同 Python 版本/实现的顺序相同。

于 2013-02-13T22:16:29.073 回答