Метад sample модуля random
Метад sample модуля random
вяртае выпадковую выбарку элементаў з
паслядоўнасці. У першым параметры
метада ўказваем паслядоўнасць, у
другім параметры - колькасць элементаў,
якія мы хочам выбраць выпадковым чынам.
У трэцім неабавязковым іменаваным
параметры k можам задаць спіс
элементаў для паўтору. Гэта дазваляе
павысіць верагоднасць выбаркі зададзеных
элементаў. Звярніце ўвагу на тое, што
трэці параметр метада дададзены толькі
пачынаючы з версіі Python 3.9.
Сінтаксіс
import random
random.sample(паслядоўнасць, колькасць элементаў, [k=паўтор])
Прыклад
Давайце атрымаем выпадковыя тры элемента з спісу:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Вынік выканання кода:
[2, 1, 5]
Прыклад
Давайце таксама паспрабуем узяць выбарку выпадковых элементаў з картэжа:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Вынік выканання кода:
[3, 2]
Прыклад
Таксама можна выбіраць элементы з
паслядоўнасці, якую генеруе
функцыя range:
print(random.sample(range(0, 10), 3))
Вынік выканання кода:
[0, 8, 9]
Прыклад
Цяпер давайце возьмем спіс і з дапамогай
параметра counts назначым паўторы
для кожнага элемента з спісу. У нашым
выпадку, хай першы элемент паўторыцца
два разы, другі - тры, а трэці - чатыры
разы. Таксама неабходна ўказаць імя параметра
k для вываду колькасці элементаў:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Гэты код эквівалентны наступнаму:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # фактычна такі спіс
print(random.sample(lst, 3))
Прыклад
Цяпер давайце паспрабуем узяць элементы з мноства:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Нам вернецца наступная памылка:
[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))
Гэта звязана з тым, што з версіі Python
3.9 не прадугледжана магчымасць
браць выбарку з мноства.