Запись на курсы по HTML, CSS, JavaScript, PHP, Python, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
60 of 151 menu
Бесплатный курс по выкладке сайтов на хостинг. Разбираем все нюансы! Начало 14 октября. Жми для записи!

Метод 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 не предусмотрена возможность брать выборку из множества.

Смотрите также

  • метод choice модуля random,
    который возвращает случайный элемент из последовательности
  • метод random модуля random,
    который возвращает псевдослучайное число
byenru