如何在python中生成随机颜色时允许重复?

问题描述:

我有一个这样的名单:如何在python中生成随机颜色时允许重复?

colors = ["red", "blue", "yellow", "green", "purple", "orange"] 
answers = random.sample(colors, 4) 

我有麻烦试图找出如何让喜欢红色,红色,蓝色,黄色生成随机颜色时重复。

您可以尝试

[random.choice(colors) for _ in range(4)] 

这里random.choice(colors)主从colors列表中的单个随机颜色。使用列表理解将四次调用该函数并将结果收集到一个新列表中。

运行示例:

>>> colors = ["red", "blue", "yellow", "green", "purple", "orange"] 
>>> import random 
>>> [random.choice(colors) for _ in range(4)] 
['red', 'green', 'orange', 'orange'] 
+0

工程。谢谢 –

替代方法(只是为了好玩,我会实际使用random.choice),允许继续使用random.sample是这样你就重复每个选项的次数等于使用序列乘法所需物品的数量,确保它可以(可能)每次都选择,并且绝对可用于重复选择:

answers = random.sample(colors * 4, 4) 
+1

当然,这只是为了好玩,可能值得注意的是,这种方法在所有可能的结果之间不会有一个平坦的概率分布 - 具有更多重复的“样本”的可能性越来越小。 –

+1

@ZeroPiraeus:亚尔。它并不完全平坦。这在某些情况下可能是有益的,因为寻找随机输出的人(不是随机加密的,只是随机的分类)通常不希望看到过多的重复(它看起来“非随机的,即使它是随机的也是如此)所以偏向于“更随机看”的输出而不会完全阻止任何给定的结果可能是一件好事。 – ShadowRanger