В этой статье мы рассмотрим, как случайным образом выбирать элементы из списка в Python. Мы рассмотрим извлечение случайных элементов, а также извлечение нескольких элементов — с повторением и без.
Введение
Выбор случайного элемента из списка является частой задачей — будь то случайное значение из списка рекомендаций или просто случайная строка.
Выбор случайного элемента из списка
Наиболее интуитивным и естественным подходом к решению этой проблемы является генерация случайного числа, которое действует как индекс доступа к элементу из списка.
Для реализации этого подхода рассмотрим некоторые методы генерации случайных чисел в Python: random.randint() и random.randrange(). Дополнительно мы можем использовать random.choice() и поставлять итерабельное число — в результате чего случайный элемент из этого итерабельного числа возвращается обратно.
Использование функции random.randint()
random.randint(a, b) возвращает случайное целое число между a и b включительно.
Нам понадобится случайный индекс в диапазоне от 0 до len(list) — 1, чтобы получить случайный индекс элемента в списке:
import random test_list = ["1", "2", "3", "4", "5", "6"] random_index = random.randint(0, len(test_list) - 1) print(test_list[random_index])
Использование функции random.randrange()
random.randrange(a) — это другой метод, который возвращает случайное число n, равное 0 <= n < a:
import random test_list = ["1", "2", "3", "4", "5", "6"] random_index = random.randrange(len(test_list)) print(test_list[random_index])
Так как random.randrange(len(test_list)) возвращает случайно сгенерированное число в диапазоне от 0 до len(test_list) — 1, мы используем его для доступа к элементу в случайном порядке в буквах, как мы делали это в предыдущем подходе.
Этот подход немного проще, чем предыдущий просто потому, что мы не указываем начальную точку, которая по умолчанию равна 0.
Использовании функции random.choice()
Еще лучшим решением, чем последнее было бы использование функции random.choice(), так как это именно та функция, которая предназначена для решения такой задачи:
import random test_list = ["1", "2", "3", "4", "5", "6"] print(random.choice(test_list))
Выбор нескольких случайных элементов из списка
Без повторения элементов
Первый метод, который мы можем использовать для случайного выделения более чем одного элемента — random.sample(). Он производит выборку, основываясь на том, сколько выборок мы хотим получить:
import random test_list = ["1", "2", "3", "4", "5", "6"] print(random.sample(test_list, 3))
Этот метод выбирает элементы без замены т.е. выбирает без дубликатов и повторений.
С повторением элементов
Как и предыдущая функция, функция random.choices() возвращает список случайно выбранных элементов из заданного итерабельного списка. Однако, она не отслеживает выбранные элементы, поэтому можно получить и дублирующие элементы:
import random test_list = ["1", "2", "3", "4", "5", "6"] print(random.choices(test_list, k=3))
Заключение
В этой статье мы рассмотрели несколько способов получения одного или нескольких случайно выбранных элементов из списка на Python.
Мы получили доступ к списку по случайному индексу с помощью randint() и randrange(), а также получили случайные элементы с помощью choices() и sample().
choices тоже нужно импортировать в начале
да
import random
Спасибо за статью с понятно изложенным содержанием. Очень помогла.
пожалуйста ! 🙂
Спасибо, нашла то, что искала.
Пожалуйста
спасибо
Пожалуйста