Как выбрать случайную строку из списка 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))]