Metoda sample modulu random
Metoda sample modulu random
vrací náhodný výběr prvků ze
sekvence. V prvním parametru
metody určujeme sekvenci, ve
druhém parametru - počet prvků,
které chceme vybrat náhodně.
Ve třetím volitelném pojmenovaném
parametru k můžeme nastavit seznam
prvků pro opakování. To umožňuje
zvýšit pravděpodobnost výběru daných
prvků. Všimněte si, že
třetí parametr metody byl přidán pouze
od verze Python 3.9.
Syntaxe
import random
random.sample(sekvence, počet prvků, [k=opakování])
Příklad
Získejme náhodné tři prvky z seznamu:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Výsledek provedení kódu:
[2, 1, 5]
Příklad
Zkusme také vzít výběr náhodných prvků z n-tice:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Výsledek provedení kódu:
[3, 2]
Příklad
Také lze vybírat prvky z
sekvence, kterou generuje
funkce range:
print(random.sample(range(0, 10), 3))
Výsledek provedení kódu:
[0, 8, 9]
Příklad
Nyní vezměme seznam a pomocí
parametru counts přiřaďme opakování
pro každý prvek ze seznamu. V našem
případě nechť se první prvek opakuje
dvakrát, druhý - třikrát, a třetí - čtyři
krát. Také je nutné určit jméno parametru
k pro výpis počtu prvků:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Tento kód je ekvivalentní následujícímu:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # fakticky takový seznam
print(random.sample(lst, 3))
Příklad
Nyní zkusme vzít prvky z množiny:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Vrátí se nám následující chyba:
[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))
To je způsobeno tím, že od verze Python
3.9 není poskytována možnost
brát výběr z množiny.