9.15. Python – Метод choice() – получить случайный элемент из списка
Метод choice() – случайный элемент из списка, кортежа или строки.
Синтаксис
Ниже приведен синтаксис метода choice() в Python:
choice(seq)
Параметры
seq – это может быть список, кортеж или строка.
Возвращаемое значение
Функция возвращает случайный элемент из списка, кортежа или строки.
Пример
В следующем примере показано использование метода choice() в Python.
#!/usr/bin/python import random print "choice([1, 2, 3, 5, 9]): ", random.choice([1, 2, 3, 5, 9]) print "choice('Строка'): ", random.choice('Строка')
Когда приведённый выше код выполнится, он даст следующий результат:
choice([1, 2, 3, 5, 9]): 2 choice('Строка'): к
Оглавление
- 1. Python – Самоучитель для начинающих
- 2. Python – Обзор
- 3. Python – Установка среды
- 4. Python – Базовый синтаксис
- 4.1. Python – Аргументы командной строки
- 5. Python – Типы переменных
- 6. Python – Основные операторы
- 6.1. Python – Арифметические операторы
- 6.2. Python – Операторы сравнения
- 6.3. Python – Операторы присваивания: примеры
- 6.4. Python – Побитовые операторы
- 6.5. Python – Логические операторы
- 6.6. Python – Операторы членства
- 6.7. Python – Операторы идентификации
- 6.8. Python – Приоритет операторов
- 7. Python – Условные операторы
- 7.1. Python – Условие if
- 7.2. Python – Условные операторы if. else и elif
- 7.3. Python – Вложенные операторы if
- 8. Python – Циклы
- 8.1. Python – Цикл while
- 8.2. Python – Цикл for
- 8.3. Python – Вложенные циклы
- 8.4. Python – Оператор break
- 8.5. Python – Оператор continue
- 8.6. Python – Оператор pass
- 9. Python – Числа
- 9.1. Python – Метод abs()
- 9.2. Python – Метод ceil()
- 9.3. Python – Метод cmp()
- 9.4. Python – Метод exp()
- 9.5. Python – Метод fabs()
- 9.6. Python – Метод floor()
- 9.7. Python – Метод log()
- 9.8. Python – Метод log10()
- 9.9. Python – Метод max()
- 9.10. Python – Метод min()
- 9.11. Python – Метод modf()
- 9.12. Python – Метод pow()
- 9.13. Python – Метод round()
- 9.14. Python – Метод sqrt()
- 9.15. Python – Метод choice()
- 9.16. Python – Метод randrange()
- 9.17. Python – Метод random()
- 9.18. Python – Метод seed()
- 9.19. Python – Метод shuffle()
- 9.20. Python – Метод uniform()
- 9.21. Python – Метод acos()
- 9.22. Python – Метод asin()
- 9.23. Python – Метод atan()
- 9.24. Python – Метод atan2()
- 9.25. Python – Метод cos()
- 9.26. Python – Метод hypot()
- 9.27. Python – Метод sin()
- 9.28. Python – Метод tan()
- 9.29. Python – Метод degrees()
- 9.30. Python – Метод radians()
Как выбрать случайный элемент из списка с исключением python
Первый вариант: Брать случайный индекс и «pop» нужный элемент.
>>> import random >>> array = [10, 11, 12, 13, 14, 15, 16] >>> array.pop(random.randrange(len(array))) 15 >>> array.pop(random.randrange(len(array))) 13 >>> array [10, 11, 12, 14, 16] >>>
Второй вариант: Перемешать список, и потом брать по порядку элементы. Или же по индексу.
>>> import random >>> array = [10, 11, 12, 13, 14, 15, 16] >>> random.shuffle(array) >>> for element in array: . print(element) . 13 16 12 11 15 14 10 >>> element1 = array[0] >>> element2 = array[1]
Отслеживать
ответ дан 7 авг 2022 в 13:41
Be3y4uu_K0T Be3y4uu_K0T
816 3 3 серебряных знака 10 10 бронзовых знаков
Тут есть несколько вариантов, можете выбирать какой удобно:
- Удаляем из исходного списка выбранный ранее элемент при помощи remove() :
mas = [sa, as, qw, re, bew, uf, yt] lv1 = random.choice(mas) mas.remove(lv1) # убираем из mas элемент, уже выбранный и помещённый в lv1 lv2 = random.choice(mas) # выборка из всех элементов, кроме lv1
- Создаём новый список, в который помещаем все элементы, кроме выбранного (положим, что все элементы уникальны) — это называется созданием списка через генератор:
mas = [sa, as, qw, re, bew, uf, yt] lv1 = random.choice(mas) mas1 = [elem for elem in mas if elem != lv1] # в новый список помещаем такие elem из старого списка, # которые не равны lv1 lv2 = random.choice(mas1) # выборка из нового списка mas1
Как из списка выбрать случайный элемент, но чтобы он не повторялся?
Допустим у меня есть список
str_list = [«123», «eisdesn», «sjs38», «sjsklek»]
Как случайно выбирать из него значение, но при этом, чтобы оно не повторялось до тех пор, пока все элементы списка не будут выбраны по 1 разу.
- Вопрос задан более трёх лет назад
- 979 просмотров
Комментировать
Решения вопроса 2

Andrey Dugin @adugin Куратор тега Python
Перемешайте список с помощью random.shuffle() и выбирайте элементы последовательно.
Ответ написан более трёх лет назад
Нравится 3 1 комментарий

Сергей Карбивничий @hottabxp Куратор тега Python
Зачастую все сложное на самом деле по сути простое.

soremix @SoreMix Куратор тега Python
Выбираете случайный элемент. Смотрите, не повторяется ли он.
import random str_list = ["123", "eisdesn", "sjs38", "sjsklek"] used = [] while len(used) != len(str_list): el = random.choice(str_list) if el not in used: print(el) used.append(el)
import random str_list = ["123", "eisdesn", "sjs38", "sjsklek"] for _ in range(len(str_list)): print(str_list.pop(random.randint(0, len(str_list)-1)))
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Используем модуль Python random получая случайные значения с sample() и choice()
Для работы со случайными значениями в Python используется модуль random. Кроме получения числовых значений, используя этот модуль, мы можем получить как одно случайное значение из списка так и группу. Рассмотрим как можно реализовать эту задачу на примере нескольких методов, а так же sample() и choice().
Навигация по посту
- Получение одного случайного значения
- По индексу с randint()
- По индексу с randrange()
- Из списка с choice()
- sample()
- Перемешиваем словарь случайным образом
- choices()
Получение одного случайного значения
По индексу с randint()
randint(a, b) возвращает случайное число между ‘a’ и ‘b’ включительно. Мы можем это использовать в списках подставив 0, как указатель начала списка, и len(list) — 1, как указатель его конца:
from random import randint l = ['один', 'два', 'три'] r = l[randint(0, len(l)-1)]В случае со словарями вариантов больше. Например мы можем использовать метод ‘items()’ возвращающий список кортежей:
from random import randint d = data = list(d.items()) key,val = data[randint(0, len(d)-1)]
По индексу с randrange()
from random import randrange lst = ['один', 'два', 'три'] r = lst[randrange(len(lst))]Пример получения такого результата из словаря:
from random import randrange dct = data = list(dct.keys()) # data хранит ['1', '2', '3'] key = data[randrange(len(data))]
Из списка с choice()
choice() — основной способ получения случайного значения из списка. В его случае мы не должны думать о его длине и индексах:
from random import choice lst = choice(['один', 'два', 'три'])Пример со словарем:
from random import randrange dct = data = choice(list(dct.items()))
Получение нескольких случайных значений
sample()
Метод sample(x, y) использует ‘x’ как массив и ‘y’ как число значений, которые вам необходимо вернуть. Возвращаемая группа не будет содержать дубликатов. Пример получения группы случайных значений со списком:
from random import sample lst = ['один', 'два', 'три'] r = sample(lst, 2)from random import sample dct = data = list(dct.items()) r = sample(data, 2)
Перемешиваем словарь случайным образом
Используя этот метод вы так же можете перемешать список указав всю его длину:
from random import sample l = ['один', 'два', 'три'] r = sample(lst, len(l))choices()
Так же группу значений можно вернуть с choices(list, k=count). Отличие этого метода от предыдущего в том, что он может взять один и тот же элемент из списка (т.е. не следит за дубликатами).
Пример со списком:
from random import choices lst = ['один', 'два', 'три'] r = choices(lst, k=2)from random import choices dct = data = list(dct.items()) r = choices(data, k=2)
Еще один пример разницы samle и choices:
from random import choices, sample lst = [1,2,3,4,5] print('Одно значение повторяется несколько раз: ', choices(lst, k=3)) print('Только уникальные: ', sample(lst, 3))