コンソールが変数に保存されている 20 個の質問からランダムに選択された質問を出力し、ユーザーが質問に回答すると、その質問が再びランダムに選択できなくなります。変数をランダムに選択し、再度選択することを許可しない部分をどのように実行しますか?
4 に答える
8
と呼ばれる質問のリストがある場合は、次のlst
ように簡単に実行できます。
import random
random.shuffle(lst)
これにより、リストがランダムな順序にシャッフルされます。次に、質問が必要になるたびに、リストから最後の要素を削除します。
question = lst.pop()
于 2013-03-11T01:08:08.283 に答える
5
次のようなことを試してください:
import random
your_questions = ['question %d' % i for i in range(20)]
random.shuffle(your_questions)
for question in your_questions:
print question
于 2013-03-11T01:09:37.693 に答える
1
置換なしでランダムなサンプルを探しているようです。あなたはできる
import random
print random.SystemRandom().sample(L,20)
は質問L
のリストで、20
は返されるランダムな (置換なしの) リストの長さです。したがって、ここでは、リストL
は質問を表す 20 個の文字列のリストになります。
注: これはランダムなリストを返します。
于 2013-03-11T01:16:24.530 に答える
0
@David Robinsonの答えが最高ですが、次のようなこともできます:
import random 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]
于 2013-03-11T01:41:01.910 に答える