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

pythonimport random

random.sample(sekvence, počet prvků, [k=opakování])

Příklad

Získejme náhodné tři prvky z seznamu:

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

Výsledek provedení kódu:

python[2, 1, 5]

Příklad

Zkusme také vzít výběr náhodných prvků z n-tice:

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

Výsledek provedení kódu:

python[3, 2]

Příklad

Také lze vybírat prvky z sekvence, kterou generuje funkce range:

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

Výsledek provedení kódu:

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

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

Tento kód je ekvivalentní následujícímu:

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

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

Vrátí se nám následující chyba:

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

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.

Viz také

  • metoda choice modulu random,
    která vrací náhodný prvek ze sekvence
  • metoda random modulu random,
    která vrací pseudonáhodné číslo