Python Glossary English

Python 3.6+randomпонятие

random.choices

выборка

Возвращает список из k случайных элементов с возвратом. Поддерживает веса (weights или cum_weights).

Синтаксис

random.choices(population, weights=None, k=1)

Выборка идёт с возвратом: дубликаты в результате — норма, а k спокойно может превышать длину population; если элементы должны быть разными, нужен sample. Веса относительные и к единице не нормируются, но длина weights обязана совпадать с population, иначе ValueError. Кумулятивные суммы весов пересчитываются при каждом вызове, поэтому для множества выборок с одними и теми же весами дешевле один раз посчитать их самому и передать через cum_weights.

Примеры

import random
random.seed(42)
print(random.choices([1,2,3,4,5], k=3))  # → 3 элемента
print(random.choices('abc', weights=[1,2,3], k=5))  # → с весами
print(random.choices(['H','T'], k=10))  # → монета
results = random.choices(range(1,7), k=1000)
from collections import Counter
print(Counter(results).most_common(3))  # → топ-3
print(random.choices(['red','green'], weights=[1,9], k=5))

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности