Ce face random.shuffle() și random.sample()
shuffle(lista) amestecă elementele listei pe loc și returnează None. Funcționează doar pe secvențe modificabile (liste), nu pe tupluri sau texte.
sample(colectie, k) returnează o listă nouă cu k elemente distincte, ca la o extragere la loterie. sample(lista, len(lista)) dă o copie amestecată, fără să modifice originalul. Cu counts (Python 3.9+) un element poate apărea de mai multe ori în populație.
Parametri
| Parametru | Descriere |
|---|---|
lista |
Pentru shuffle: lista amestecată. |
populatie, k |
Pentru sample: colecția și numărul de elemente extrase. |
counts |
Opțional. De câte ori apare fiecare element în populație. |
Ce returnează
shuffle: None. sample: o listă nouă.
Exemple
Exemplul 1: Amestecare și extragere
import random
random.seed(5)
carti = ["A", "K", "Q", "J", "10"]
random.shuffle(carti)
print(carti)
print(sorted(random.sample(range(1, 50), 6)))
print(random.sample(["roșu", "albastru"], k=4, counts=[3, 2]))
Rezultat
['A', 'K', 'J', 'Q', '10']
[2, 30, 34, 42, 45, 48]
['roșu', 'roșu', 'albastru', 'roșu']
Greșeli frecvente
- Scrii
lista = random.shuffle(lista)și lista devineNone. - Ceri mai multe elemente decât are populația:
sample([1, 2], 3)dăValueError: Sample larger than population.
Comenzi înrudite
random.choice() și random.choices(): Alege aleator un element dintr-o listă, sau k elemente, cu ponderi opționale.random.seed(), getstate() și setstate(): Fixează punctul de pornire al generatorului, ca rezultatele aleatoare să se poată repeta.itertools.permutations(): Toate aranjamentele posibile ale elementelor, în care ordinea contează.