Έχω μια λίστα αντικειμένων και θέλω να τα ανακατέψω. Σκέφτηκα ότι θα μπορούσα να χρησιμοποιήσω τη μέθοδο random.shuffle
, αλλά αυτό φαίνεται να αποτυγχάνει όταν η λίστα αποτελείται από αντικείμενα. Υπάρχει κάποια μέθοδος για το ανακάτεμα των αντικειμένων ή κάποιος άλλος τρόπος για να το παρακάμψω αυτό;
import random
class A:
foo = "bar"
a1 = a()
a2 = a()
b = [a1, a2]
print(random.shuffle(b))
Αυτό θα αποτύχει.
Το random.shuffle
θα πρέπει να λειτουργήσει. Εδώ είναι ένα παράδειγμα, όπου τα αντικείμενα είναι λίστες:
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
Σημειώστε ότι το shuffle λειτουργεί στη θέση και επιστρέφει None.
>>> import random
>>> a = ['hi','world','cat','dog']
>>> random.shuffle(a,random.random)
>>> a
['hi', 'cat', 'dog', 'world']
Δουλεύει μια χαρά για μένα. Βεβαιωθείτε ότι έχετε ορίσει τη μέθοδο τυχαίας επιλογής.