Выбор случайного порядка вывода строк без повторений

У меня есть записанные вопросы, например:

  • Почему 2+2 будет 4?
  • Почему если не учиться будешь получать плохую оценку?
  • Как избежать получение плохих оценок?

Мне нужно обеспечить случайный порядок их вывода, при так, чтобы при этом ни один вопрос не выводился дважды.


Ответы (2 шт):

Автор решения: augustoff7
# импортируем 'shuffle' из библиотеки 'random'
from random import shuffle

# создаем список с вопросами
questions = [
    "Почему 2+2 будет 4?",
    "Почему если не учиться будешь получать плохую оценку?",
    "Как избежать получение плохих оценок?",
]

# перемешиваем вопросы в случайном порядке
shuffle(questions)

# проходимся по списку и выводим каждый вопрос
for question in questions:
    print(question)
→ Ссылка
Автор решения: Stanislav Volodarskiy

random.sample:

Return a k length list of unique elements chosen from the population sequence. Used for random sampling without replacement.

Попросите у него выбрать все элементы (random.sample(questions, len(questions))):

import random


questions = [
    "Почему 2+2 будет 4?",
    "Почему если не учиться будешь получать плохую оценку?",
    "Как избежать получение плохих оценок?",
]
print(*random.sample(questions, len(questions)), sep='\n')
$ python questions.py
Почему если не учиться будешь получать плохую оценку?
Почему 2+2 будет 4?
Как избежать получение плохих оценок?

$ python questions.py
Почему 2+2 будет 4?
Как избежать получение плохих оценок?
Почему если не учиться будешь получать плохую оценку?

$ python questions.py
Почему если не учиться будешь получать плохую оценку?
Как избежать получение плохих оценок?
Почему 2+2 будет 4?
→ Ссылка