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

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

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

Допустим,

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

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

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

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

random.randrange ():

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

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

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

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

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

0 голосов
/ 26 ноября 2018

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...