2013-03-11 61 views
1

我正在製作一個化學項目的小遊戲,控制檯打印一個隨機選擇的問題,其中20個存儲在變量中,用戶回答問題,然後該問題變得無法再次被隨機選取。我該如何去做那些隨機挑選變量然後不允許再次選擇的部分?選擇一個隨機變量,然後讓它變得無法在Python中再次選擇?

+0

它們是否存儲在列表中? – 2013-03-11 01:07:47

回答

8

如果你有叫lst問題清單,你可以簡單地做:

import random 
random.shuffle(lst) 

這個洗牌的名單爲隨機順序。然後,你想一個問題,每次,你從列表中刪除最後一個元素:

question = lst.pop() 
5

嘗試這樣的:

import random 

your_questions = ['question %d' % i for i in range(20)] 
random.shuffle(your_questions) 

for question in your_questions: 
    print question 
1

這聽起來像你正在尋找無需更換隨機抽樣。您可以

import random 

print random.SystemRandom().sample(L,20) 

L是你的問題的列表,並20是隨機的(不更換)列表的長度要返回。因此,在這裏,您的清單L將是代表您問題的20個字符串的列表。

注意:這將返回一個隨機列表。

0

雖然@大衛羅賓遜的回答是最好的,你也可以這樣做:

進口隨機 LST = [...]#包含問題

現在每次你需要一個問題:

choiceIndex = random.randint(0, len(lst)-1) # you want to do -1 since randint 
choice = lst[choiceIndex]     # is inclusive and indices start at 0 
del lst[choiceIndex] 
相關問題