2017-09-26 66 views
-2

这是我到目前为止的代码:如何检查是否重复使用随机模块打印的内容?

import random 

words = ['a', 'b', 'c'] 
def abc(): 
    print(random.choice(words)) 
    input('Press Enter to Continue') 
    abc() 
abc() 

我怎样才能使它所以每次打印从列表words一个字的时候,它会检查是否已经重复之前呢?我希望答案是在没有模块的python或random模块中。

+2

你为什么要这么做?如果你的目标是按照随机顺序打印一次,使用'random.shuffle()'。如果你真的想要,你可以使用'set'来跟踪你打印的内容。 –

+1

这听起来好像你想* shuffle *'words'来代替,然后只是遍历随机顺序。这样你就不会重复同一个词。 –

+3

我建议你写一个适当的循环,而不是在其内部调用'abc'。 – khelwood

回答

1

正如@John指出的那样,只需使用random.shuffle即可。

random.shuffle(x[, random])

洗牌序列x到位。 可选参数random是一个0参数函数,它在[0.0,1.0)中返回一个随机值 float;默认情况下,这是函数random()。

random.shuffle(words) 

print(words) 

#loop 
for word in words: 
     print(word) 

会给:

IN : words = ['a', 'b', 'c'] 
OUT : ['c', 'a', 'b']       #This is random 

注1:优势利用shuffle的是,有没有得到相同的元素两倍的你的风险。

注意2:请小心,因为使用shuffle会影响您存储数据的原始变量。如果您想保留原始序列,我建议您将数据复制到另一个变量中,并使用shuffle中的数据。

相关问题