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ă

pythonimport random

random.sample(secvență, număr_de_elemente, [k=repetare])

Exemplu

Să obținem trei elemente aleatorii dintr-o listă:

pythonlst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))

Rezultatul executării codului:

python[2, 1, 5]

Exemplu

Să încercăm de asemenea să luăm o selecție de elemente aleatorii dintr-un tuplu:

pythontpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))

Rezultatul executării codului:

python[3, 2]

Exemplu

De asemenea, se pot selecta elemente din secvența generată de funcția range:

pythonprint(random.sample(range(0, 10), 3))

Rezultatul executării codului:

python[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:

pythonlst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))

Acest cod este echivalent cu următorul:

pythonlst = [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:

pythonst = {1, 2, 3, 4, 5}
print(random.sample(st, 2))

Vom primi următoarea eroare:

error[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.

Vezi și

  • metoda choice a modulului random,
    care returnează un element aleatoriu dintr-o secvență
  • metoda random a modulului random,
    care returnează un număr pseudoaleatoriu