Metóda sample modulu random

Metóda sample modulu random vracia náhodný výber prvkov z postupnosti. V prvom parametri metódy uvádzame postupnosť, v druhom parametri - počet prvkov, ktoré chceme vybrať náhodne.

V treťom voliteľnom menovanom parametri k môžeme zadať zoznam prvkov pre opakovanie. To umožňuje zvýšiť pravdepodobnosť výberu zadaných prvkov. Dávajte pozor na to, že tretí parameter metódy bol pridaný až od verzie Python 3.9.

Syntax

pythonimport random

random.sample(postupnosť, počet prvkov, [k=opakovanie])

Príklad

Zoberme si náhodné tri prvky z zoznamu:

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

Výsledok vykonania kódu:

python[2, 1, 5]

Príklad

Skúsme tiež vziať výber náhodných prvkov z n-tice:

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

Výsledok vykonania kódu:

python[3, 2]

Príklad

Tiež je možné vyberať prvky z postupnosti, ktorú generuje funkcia range:

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

Výsledok vykonania kódu:

python[0, 8, 9]

Príklad

Teraz zoberme zoznam a pomocou parametra counts priraďme opakovania pre každý prvok zo zoznamu. V našom prípade, nech sa prvý prvok zopakuje dva krát, druhý - tri, a tretí - štyri krát. Tiež je potrebné zadať meno parametra k pre výpis počtu prvkov:

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

Tento kód je ekvivalentný nasledujúcemu:

pythonlst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # fakticky takýto zoznam
print(random.sample(lst, 3))

Príklad

Teraz skúsme vziať prvky z množiny:

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

Dostaneme nasledujúcu chybu:

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))

Je to spôsobené tým, že od verzie Python 3.9 nie je poskytovaná možnosť brať výber z množiny.

Pozri tiež

  • metóda choice modulu random,
    ktorá vracia náhodný prvok z postupnosti
  • metóda random modulu random,
    ktorá vracia pseudonáhodné číslo