Перейти к содержимому

Как вывести рандомный элемент из списка python

  • автор:

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 бронзовых знаков

Тут есть несколько вариантов, можете выбирать какой удобно:

  1. Удаляем из исходного списка выбранный ранее элемент при помощи remove() :
mas = [sa, as, qw, re, bew, uf, yt] lv1 = random.choice(mas) mas.remove(lv1) # убираем из mas элемент, уже выбранный и помещённый в lv1 lv2 = random.choice(mas) # выборка из всех элементов, кроме lv1 
  1. Создаём новый список, в который помещаем все элементы, кроме выбранного (положим, что все элементы уникальны) — это называется созданием списка через генератор:
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

adugin

Andrey Dugin @adugin Куратор тега Python

Перемешайте список с помощью random.shuffle() и выбирайте элементы последовательно.

Ответ написан более трёх лет назад

Нравится 3 1 комментарий

hottabxp

Сергей Карбивничий @hottabxp Куратор тега Python

Зачастую все сложное на самом деле по сути простое.

SoreMix

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))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *