Ich habe eine Liste von Objekten und möchte sie mischen. Ich dachte, ich könnte die Methode random.shuffle
verwenden, aber das scheint zu scheitern, wenn die Liste aus Objekten besteht. Gibt es eine Methode zum Mischen von Objekten oder eine andere Möglichkeit, dieses Problem zu umgehen?
import random
class A:
foo = "bar"
a1 = a()
a2 = a()
b = [a1, a2]
print(random.shuffle(b))
Dies wird fehlschlagen.
random.shuffle
sollte funktionieren. Hier ist ein Beispiel, bei dem die Objekte Listen sind:
from random import shuffle
x = [[i] for i in range(10)]
shuffle(x)
# print(x) gives [[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]]
# of course your results will vary
Beachten Sie, dass shuffle an Ort und Stelle funktioniert und None zurückgibt.
>>> import random
>>> a = ['hi','world','cat','dog']
>>> random.shuffle(a,random.random)
>>> a
['hi', 'cat', 'dog', 'world']
Bei mir funktioniert das gut. Stellen Sie sicher, dass Sie die Zufallsmethode einstellen.