确保 Set Python 上迭代的随机顺序

Ensuring random order for iteration over Set Python

我正在迭代 Python 中的一个集合。在我的应用程序中,我更喜欢迭代每次都是随机顺序。然而,我看到的是,每次我 运行 程序时,我都会得到相同的命令。这不是致命的,但有没有办法确保对 Set 进行随机迭代?

使用random.shuffle对集合的列表。

>>> import random
>>> s = set('abcdefghijklmnopqrstuvwxyz')
>>> for i in range(5): #5 tries
    l = list(s)
    random.shuffle(l)
    print ''.join(l) #iteration


nguoqbiwjvelmxdyazptcfhsrk
fxmaupvhboclkyqrgdzinjestw
bojweuczdfnqykpxhmgvsairtl
wnckxfogjzpdlqtvishmeuabry
frhjwbipnmdtzsqcaguylkxove

您可以使用 random.shuffle 来洗牌:

>>> from random import shuffle
>>> a = set([1,2,3,4,5])
>>> b = list(a)
>>> shuffle(b)
>>> b
[4, 2, 1, 3, 5]
>>>