Что делает метод random.sample() в python?

Я много искал, но не смог его найти. Я хочу знать использование метода random.sample() и что он дает? Когда это следует использовать и использовать некоторые примеры.

Ответ 1

Согласно документации:

random.sample (население, к)

Возвращает список длины уникальных элементов, выбранных из последовательности популяции. Используется для случайной выборки без замены.

По сути, он выбирает k уникальных случайных элементов, выборку из последовательности:

>>> import random
>>> c = list(range(0, 15))
>>> c
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
>>> random.sample(c, 5)
[9, 2, 3, 14, 11]

random.sample работает также напрямую из диапазона:

>>> c = range(0, 15)
>>> c
range(0, 15)
>>> random.sample(c, 5)
[12, 3, 6, 14, 10]

В дополнение к последовательностям random.sample работает и с наборами:

>>> c = {1, 2, 4}
>>> random.sample(c, 2)
[4, 1]

Однако random.sample не работает с произвольными итераторами:

>>> c = [1, 3]
>>> random.sample(iter(c), 5)
TypeError: Population must be a sequence or set.  For dicts, use list(d).

Ответ 2

random.sample() также работает с текстом

пример:

> text = open("textfile.txt").read() 

> random.sample(text, 5)

> ['f', 's', 'y', 'v', '\n']

\n также рассматривается как символ, который также может быть возвращен

вы можете использовать random.sample() для возврата случайных слов из текстового файла, если вы сначала используете метод split

пример:

> words = text.split()

> random.sample(words, 5)

> ['the', 'and', 'a', 'her', 'of']