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
import random
random.sample(postupnosť, počet prvkov, [k=opakovanie])
Príklad
Zoberme si náhodné tri prvky z zoznamu:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Výsledok vykonania kódu:
[2, 1, 5]
Príklad
Skúsme tiež vziať výber náhodných prvkov z n-tice:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Výsledok vykonania kódu:
[3, 2]
Príklad
Tiež je možné vyberať prvky z
postupnosti, ktorú generuje
funkcia range:
print(random.sample(range(0, 10), 3))
Výsledok vykonania kódu:
[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:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Tento kód je ekvivalentný nasledujúcemu:
lst = [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:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Dostaneme nasledujúcu chybu:
[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.