@WITCH_ink

Как из списка выбрать случайный элемент, но чтобы он не повторялся?

Допустим у меня есть список
str_list = ["123", "eisdesn", "sjs38", "sjsklek"]
Как случайно выбирать из него значение, но при этом, чтобы оно не повторялось до тех пор, пока все элементы списка не будут выбраны по 1 разу.
  • Вопрос задан
  • 1468 просмотров
Решения вопроса 2
adugin
@adugin Куратор тега Python
Перемешайте список с помощью random.shuffle() и выбирайте элементы последовательно.
Ответ написан
SoreMix
@SoreMix Куратор тега Python
yellow
Выбираете случайный элемент. Смотрите, не повторяется ли он.

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)))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы