2013-03-11 1 views
1

콘솔에서 변수에 저장된 20 개 질문 중에서 무작위로 선택한 질문을 출력하는 화학 프로젝트를위한 작은 게임을 만들었습니다. 사용자가 질문에 대답 한 다음 그 질문을 무작위로 다시 선택할 수 없게됩니다. 무작위로 변수를 선택한 다음 다시 선택하지 못하게하는 부분에 대해 어떻게해야합니까? 당신이 lst라는 질문의 목록이있는 경우임의의 변수를 선택하고 Python에서 다시 선택할 수 없게 되었습니까?

+0

목록에 저장되어 있습니까? –

답변

8

, 당신은 간단하게 할 수있는 :

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

그것은 소리. 당신 L이 질문의 목록이며, 20 반환되는 임의 (없이-교체) 목록의 길이

import random 

print random.SystemRandom().sample(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] 
관련 문제