Metoda sample a modulului random
Metoda sample a modulului random
returnează o selecție aleatorie de elemente dintr-o
secvență. În primul parametru
al metodei specificăm secvența, în
al doilea parametru - numărul de elemente,
pe care dorim să le selectăm aleatoriu.
În al treilea parametru opțional numit
k putem seta o listă
de elemente pentru repetare. Acest lucru permite
creșterea probabilității de selecție a anumitor
elemente. Rețineți că
al treilea parametru al metodei a fost adăugat doar
începând cu versiunea Python 3.9.
Sintaxă
import random
random.sample(secvență, număr_de_elemente, [k=repetare])
Exemplu
Să obținem trei elemente aleatorii dintr-o listă:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Rezultatul executării codului:
[2, 1, 5]
Exemplu
Să încercăm de asemenea să luăm o selecție de elemente aleatorii dintr-un tuplu:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Rezultatul executării codului:
[3, 2]
Exemplu
De asemenea, se pot selecta elemente din
secvența generată de
funcția range:
print(random.sample(range(0, 10), 3))
Rezultatul executării codului:
[0, 8, 9]
Exemplu
Acum să luăm o listă și cu ajutorul
parametrului counts să atribuim repetări
pentru fiecare element din listă. În cazul nostru,
primul element să se repete
de două ori, al doilea - de trei, iar al treilea - de patru
ori. De asemenea, este necesar să specificăm numele parametrului
k pentru afișarea numărului de elemente:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Acest cod este echivalent cu următorul:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # practic această listă
print(random.sample(lst, 3))
Exemplu
Acum să încercăm să luăm elemente dintr-o mulțime:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Vom primi următoarea eroare:
[5, 2]
DeprecationWarning: Sampling from a set deprecated
since Python 3.9 and will be removed in a subsequent version.
print(random.sample(st, 2))
Aceasta se datorează faptului că începând cu versiunea Python
3.9 nu este prevăzută posibilitatea
de a lua selecții dintr-o mulțime.