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

← →
↑