Метад sample модуля random

Метад sample модуля random вяртае выпадковую выбарку элементаў з паслядоўнасці. У першым параметры метада ўказваем паслядоўнасць, у другім параметры - колькасць элементаў, якія мы хочам выбраць выпадковым чынам.

У трэцім неабавязковым іменаваным параметры k можам задаць спіс элементаў для паўтору. Гэта дазваляе павысіць верагоднасць выбаркі зададзеных элементаў. Звярніце ўвагу на тое, што трэці параметр метада дададзены толькі пачынаючы з версіі Python 3.9.

Сінтаксіс

pythonimport random

random.sample(паслядоўнасць, колькасць элементаў, [k=паўтор])

Прыклад

Давайце атрымаем выпадковыя тры элемента з спісу:

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

Вынік выканання кода:

python[2, 1, 5]

Прыклад

Давайце таксама паспрабуем узяць выбарку выпадковых элементаў з картэжа:

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

Вынік выканання кода:

python[3, 2]

Прыклад

Таксама можна выбіраць элементы з паслядоўнасці, якую генеруе функцыя range:

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

Вынік выканання кода:

python[0, 8, 9]

Прыклад

Цяпер давайце возьмем спіс і з дапамогай параметра counts назначым паўторы для кожнага элемента з спісу. У нашым выпадку, хай першы элемент паўторыцца два разы, другі - тры, а трэці - чатыры разы. Таксама неабходна ўказаць імя параметра k для вываду колькасці элементаў:

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

Гэты код эквівалентны наступнаму:

pythonlst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # фактычна такі спіс
print(random.sample(lst, 3))

Прыклад

Цяпер давайце паспрабуем узяць элементы з мноства:

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

Нам вернецца наступная памылка:

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

Гэта звязана з тым, што з версіі Python 3.9 не прадугледжана магчымасць браць выбарку з мноства.

Глядзіце таксама

  • метад choice модуля random,
    які вяртае выпадковы элемент з паслядоўнасці
  • метад random модуля random,
    які вяртае псеўдавыпадковы лік