Python random.choice()函数 - 如何永远不会有两个选择或彼此接近

pro*_*der 4 python random module

让我说我有

mychoice = random.choice(['this is random response 1','this is random response 2', 
'this is random response 3', 'and 4', 'and so on'])
Run Code Online (Sandbox Code Playgroud)

如何避免连续多次重复相同的选择?或者我怎样才能设置条件以使特定选择仅在选择了一定数量的其他选择后出现?或者是否有一个模块更适合我在这方面的需求?

Kar*_*der 8

最简单的解决方案可能是构造一个usedQueue长度k(其中k是允许重复选择之前的选择数.)当您选择一个选项时,将其从原始列表中删除并放入usedQueue.然后,如果usedQueue.length > k,将一个弹回到你的阵列上.

如前所述,这显着降低了算法的随机性.也就是说,它确实有实际用途(看看iTunes.)