Случайный элемент списка

В этом примере разберём два способа получить случайный элемент из списка на Python: через стандартный модуль random и через криптографически безопасный secrets.

Что нужно знать

Перед изучением примера полезно понимать:

Пример 1. Через модуль random

import random

my_list = [1, 'a', 32, 'c', 'd', 31]
print(random.choice(my_list))

Вывод

31

Модуль random позволяет случайным образом выбрать любой элемент списка. В примере выше список my_list передаётся методу choice() как параметр, и тот возвращает один из элементов.

Примечание

Результат может отличаться при каждом запуске — выбор случайный.

Пример 2. Через модуль secrets

import secrets

my_list = [1, 'a', 32, 'c', 'd', 31]
print(secrets.choice(my_list))

Вывод

c

Метод choice() из модуля secrets тоже выбирает случайный элемент списка, но делает это криптографически более надёжно, чем random. Его стоит использовать там, где важна безопасность — например, при генерации паролей или токенов.

Как это работает

В обоих случаях задача одна: вернуть один случайный элемент из переданной последовательности. Разница лишь в источнике случайности: random использует псевдослучайный генератор Mersenne Twister, secrets опирается на источник случайности операционной системы и предназначен для криптографии.