Как из списка выбрать случайный элемент, но чтобы он не повторялся?
Допустим у меня есть список
str_list = [«123», «eisdesn», «sjs38», «sjsklek»]
Как случайно выбирать из него значение, но при этом, чтобы оно не повторялось до тех пор, пока все элементы списка не будут выбраны по 1 разу.
- Вопрос задан более трёх лет назад
- 1013 просмотров
Комментировать
Решения вопроса 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
Первый вариант: Брать случайный индекс и «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
841 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
Отслеживать
ответ дан 7 авг 2022 в 13:24
3,933 4 4 золотых знака 10 10 серебряных знаков 22 22 бронзовых знака
- python
- массивы
- случайные-числа
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.26.3951
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()
Выбрать случайный элемент из части списка

Недавно изучаю питон, есть вопрос, допустим у меня есть список:
foo = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
как мне сделать, чтобы я мог выбрать случайный элемент не среди всех, а только конкретных. Например выбрать случайный из (b,c,d)
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Изменить тип списка и выбрать случайный элемент из списка, который ввел пользователь
Помогите пожалуйста изменить тип списка с integer в string. Я паскаль только изучаю и не могу.
Выбрать случайный элемент массива
Есть двумерный массив в котором слова расписаны побуквенно. Подскажите пожалуйста как выбрать.

Выбрать случайный элемент в ListBox
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Randomize().
Am I evil? Yes, I am!
![]()
![]()
17052 / 9999 / 2763
Регистрация: 21.10.2017
Сообщений: 21,960

Сообщение было отмечено Vladik356 как решение
Решение
random.choice(foo[с какого : до какого])
Регистрация: 13.12.2017
Сообщений: 12
iSmokeJC, спасибо большое! а как еще сделать, чтоб варианты не повторялись?
Am I evil? Yes, I am!
![]()
![]()
17052 / 9999 / 2763
Регистрация: 21.10.2017
Сообщений: 21,960
Vladik356, тот, который уже выпал, убирать из списка
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Как выбрать случайный элемент из массива строк?
Суть проста массив работает , но иногда выдает пробел вместо фамилии. Сильно камнями не.
Получить случайный элемент списка с определённым значением
Добрый день. Есть список List<Vector3> (c# unity), т. е. набор координат вида (x,y,z). Нужно.
Выбрать случайный элемент массива и вывести элементы, начинающиеся на последний символ.
Имеется массив А длины с 10-ю названиями овощей и фруктов. Случайно выбирается элемент массива s и.
Выбрать случайный элемент массива и вывести элементы, длина которых совпадает с длиной s
Добрый вечер, помогите с решением задачи Задать массив А длины 10 с 10-ю названиями овощей и.
Выбрать случайный элемент массива и вывести элементы, длина которых совпадает с длиной s
Добрый вечер, помогите с решением задачи Задать массив А длины 10 с 10-ю названиями овощей и.

Поменять в матрице случайный элемент в первой строке и случайный элемент в последней строке
Пользователь вводит массив 3 строки 4 столбца. Программа меняет местами случайный элемент в первой.

Выбрать последний элемент списка
подскажите пожалуйста как выбрать последний элемент списка?
Или воспользуйтесь поиском по форуму: