ben*_*ben 4 python implementation cpython unordered-set
似乎有一些一致性,因为调用set()
字符串似乎总是解析为相同的(非alabetical)顺序,并且两者都是
set([1,2,3]) & set([1,2,3,4])
Run Code Online (Sandbox Code Playgroud)
和它的表兄弟混在一起
set([2,3,1]) & set([4,3,1,2])
Run Code Online (Sandbox Code Playgroud)
将导致有序的set([1,2,3])
.
另一方面,有点像racy,比如
from random import randint
set([randint(0,9) for x in range(3)])
Run Code Online (Sandbox Code Playgroud)
有时会给set([9, 6, 7])
...
... 这里发生了什么?
您应该将集合视为无序集合
它们存储在哈希表中.
此外,当您继续添加元素时,哈希将被转移到更大的表中,因此该顺序可能会发生显着变化.
无法保证订单在不同的Python版本/实现中是相同的.