random.shuffle() și random.sample() în Python

Numere aleatorii (random) Python 3.0+ (sample counts: 3.9+)

Amestecă o listă pe loc sau extrage k elemente diferite, fără repetare.

Sintaxă
random.shuffle(lista)
random.sample(populatie, k, *, counts=None)

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 devine None.
  • Ceri mai multe elemente decât are populația: sample([1, 2], 3) dă ValueError: Sample larger than population.

Comenzi înrudite