Как выбрать случайную строку из списка Python, кроме использования random.randint() в индексе?

Я пытаюсь получить случайную строку из списка Python, чтобы создать задачу угадать слова. Я развернул среду анаконды в Alibaba Cloud ECS Instance.

Я часто использую следующий метод для извлечения случайной строки из списка.

Скажем

WordStack=['A','B','C','D']
print(WordStack[random.randint(len(WordStack))])

Есть ли оптимизированный способ или встроенная функция для этого? Из-за большого количества слов для получения результата требуется некоторое время.

2 ответа

Решение

Взгляни на random.choice который делает именно то, что вам нужно. Для вашего случая это будет выглядеть так:

WordStack = ['A','B','C','D']
random_str = random.choice(WordStack)
print(random_str)  # -> whatever

Сказав это, я бы не ожидал, что это так сильно повлияет на скорость процесса. Но если я найду время, я проверю это.

Вы можете попробовать random.randrange () вместо random.randint ().

random.randrange ():

Вернуть случайно выбранный элемент из диапазона (начало, остановка, шаг). Это эквивалентно выбору (диапазон (начало, остановка, шаг)), но на самом деле не создает объект диапазона.

С https://docs.python.org/3/library/random.html

Я не знаю ни одной встроенной функции, которая делает это.

Таким образом, эквивалентное утверждение будет:

WordStack[random.randrange(len(WordStack))]

Другие вопросы по тегам