Метод sample модуля random - случайная выборка элементов из последовательности на Python

Метод 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,
    который возвращает псевдослучайное число



Чат с GPT Компилятор