2016-07-05 72 views
-1

我不知道如何在def我可以不重复地随机化句子。Python:随机没有重复,但在def

def yellowJeden(x,m): 
    if m <= 25: 
     zd1 = "Juz na samym poczatku meczu "+ x.strip() + " dostal" 
     zd2 = "Juz w " + str(m) + ". minucie meczu zawodnik druzyny "+ druzyna1 + " dostal zolta kartke. "+ x.strip() + " sfaulowal swojego przeciwnika." 
     zd3 = x.strip() + " juz w poczatkowych minutach meczu otrzymal zolta kartke za nieczyste zagranie. Sfaulowal on zowodnika druzyny przeciwnej. " 

     zolta1 = [zd1, zd2, zd3] 
     zolta1Index = random.randint(0, len(zolta1)-1) 
     print zolta1[zolta1Index] 
     zolta1.remove(zolta1[zolta1Index]) 

def akcja(): 
    a = line.split(',') 
    min = int(a[1]) 
    if a[2] == ' yellow1': 
     yellow1 = a[3] 
     yellowJeden(yellow1, min) 
    elif a[2] == ' yellow2': 
     yellow2 = a[3] 
     yellowDwa(yellow2, min) 

for line in fh: 
    if line.startswith('1.'): 
     akcja() 
    elif line.startswith('2.'): 
     akcja() 
    elif line.startswith('3.'): 
     akcja() 

它更复杂。我不想写每句话。

回答

2

你在找这样的吗?

>>> import random 
>>> def ShuffleSentences(): 
...  sentences = [ "First sentence", "Second sentence", "Third sentence", "last sentence"] 
...  random.shuffle(sentences) 
...  for s in sentences: 
...   print s 
... 
>>> ShuffleSentences() 
Second sentence 
last sentence 
Third sentence 
First sentence 
>>> ShuffleSentences() 
Second sentence 
First sentence 
Third sentence 
last sentence 
>>> ShuffleSentences() 
Second sentence 
Third sentence 
First sentence 
last sentence 
>>> 
1

考虑句子集合(例如列表)。 使用random.shuffle来洗牌收集。 这样你可以避免重复。