Metoda sample modułu random
Metoda sample modułu random
zwraca losową próbkę elementów z
sekwencji. W pierwszym parametrze
metody wskazujemy sekwencję, w
drugim parametrze - liczbę elementów,
które chcemy wybrać losowo.
W trzecim opcjonalnym parametrze nazwanym
k możemy ustawić listę
elementów do powtórzenia. To pozwala
zwiększyć prawdopodobieństwo wyboru określonych
elementów. Zwróć uwagę na to, że
trzeci parametr metody został dodany dopiero
od wersji Python 3.9.
Składnia
import random
random.sample(sekwencja, liczba elementów, [k=powtórzenie])
Przykład
Pobierzmy losowe trzy elementy z listy:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Wynik wykonania kodu:
[2, 1, 5]
Przykład
Spróbujmy również pobrać próbkę losowych elementów z krotki:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Wynik wykonania kodu:
[3, 2]
Przykład
Można również wybierać elementy z
sekwencji, którą generuje
funkcja range:
print(random.sample(range(0, 10), 3))
Wynik wykonania kodu:
[0, 8, 9]
Przykład
Teraz weźmy listę i za pomocą
parametru counts przypiszmy powtórzenia
dla każdego elementu z listy. W naszym
przypadku, niech pierwszy element powtórzy się
dwa razy, drugi - trzy, a trzeci - cztery
razy. Konieczne jest również wskazanie nazwy parametru
k dla wypisania liczby elementów:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Ten kod jest równoważny następującemu:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # faktycznie taka lista
print(random.sample(lst, 3))
Przykład
Teraz spróbujmy pobrać elementy ze zbioru:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Zostanie zwrócony następujący błąd:
[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))
Jest to związane z tym, że od wersji Python
3.9 nie ma możliwości
pobierania próbki ze zbioru.