我正在尝试从 python 列表中检索一个随机字符串来构建一个单词猜测挑战。我在阿里云 ECS 实例上部署了 anaconda 环境。
我经常使用以下方法从列表中检索随机字符串。
比方说
WordStack=['A','B','C','D']
print(WordStack[random.randint(len(WordStack))])
是否有任何优化的方式或内置功能可以做到这一点?由于字数较多,需要一段时间才能给出结果。
我正在尝试从 python 列表中检索一个随机字符串来构建一个单词猜测挑战。我在阿里云 ECS 实例上部署了 anaconda 环境。
我经常使用以下方法从列表中检索随机字符串。
比方说
WordStack=['A','B','C','D']
print(WordStack[random.randint(len(WordStack))])
是否有任何优化的方式或内置功能可以做到这一点?由于字数较多,需要一段时间才能给出结果。
看看random.choice
哪个正是您需要的。对于您的情况,它看起来像这样:
WordStack = ['A','B','C','D']
random_str = random.choice(WordStack)
print(random_str) # -> whatever
话虽如此,我没想到它会对流程的速度产生如此大的影响。但是如果我找到时间我会测试它。
您可以尝试使用 random.randrange() 而不是 random.randint()。
随机.randrange():
从范围(开始,停止,步骤)中返回一个随机选择的元素。这等效于choice(range(start, stop, step)),但实际上并不构建范围对象。
来自https://docs.python.org/3/library/random.html#random.randrange
我不知道有任何内置函数可以做到这一点。
所以等效的语句是:
WordStack[random.randrange(len(WordStack))]