有没有人真正知道如何在Python中确定集合的顺序?

参见英文答案 > ‘order’ of unordered Python sets                                    5个
似乎有一些一致性,在字符串上调用set()似乎总是解析为相同的(非alabetical)顺序,并且两者都

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

和它的表兄弟混在一起

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

将导致有序的集([1,2,3]).

另一方面,有点像racy,比如

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

有时会给出类似集合的东西([9,6,7])……

… 这里发生了什么?

解决方法:

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

它们存储在哈希表中.

此外,当您继续添加元素时,哈希将被转移到更大的表中,因此该顺序可能会发生显着变化.

无法保证订单在不同的Python版本/实现中是相同的.

上一篇:java – ui背后的类:包含JSF标记


下一篇:对于UITableView和UIImageView的DrawRect重写之后的影响