除了在索引中使用random.randint()之外,如何从python列表中选择随机字符串?

时间:2018-11-26 15:37:54

标签: python python-3.x alibaba-cloud alibaba-cloud-ecs

我正在尝试从python列表中检索随机字符串以构建单词猜测挑战。我在阿里云ECS实例上部署了anaconda环境。

我经常使用以下方法从列表中检索随机字符串。

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

是否有优化的方法或内置功能来做到这一点?由于单词过多,得出结果要花一些时间。

2 个答案:

答案 0 :(得分:2)

看看random.choice确实满足您的需求。对于您的情况,它看起来像这样:

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

话虽如此,我不希望它对处理速度产生如此大的影响。但是,如果我有时间,我会测试一下。

答案 1 :(得分:0)

您可以尝试使用random.randrange()代替random.randint()。

random.randrange():

  

从范围(开始,停止,步进)中返回随机选择的元素。这等同于选择(范围(开始,停止,步进)),但是实际上并没有建立范围对象。

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

我不知道有任何内置函数可以做到这一点。

因此等效的语句为:

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