所以,最近我在使用random.shuffle从列表中随机选择并执行一个函数时遇到了麻烦。我已经能够完成该流程,但现在我希望这些问题一旦被挑选就从列表中删除。我将向您展示理论上应该有效的代码,但只需随机选择问题并重复它们。
while 1:
questionList = [Question1, Question2, Question3, Question4, Question5]
random.shuffle(questionList)
print(questionList.pop()())
如果您对如何获得我想要的结果有所了解,请不要害怕发表评论或添加新答案!
〜干杯!
答案 0 :(得分:1)
您每次循环都会重新创建questionList
!
试试这个:
questionList = [Question1, Question2, Question3, Question4, Question5]
random.shuffle(questionList)
for q in questionList:
print(q())
答案 1 :(得分:1)
问题是你总是在while循环中设置questionList
,每次都用一个带有所有问题的新填充版本替换它。如果你将它移出循环,它应该可以正常工作。
此外,一次洗牌就足够了,所以你也可以将它移出循环。
此外,while 1
永远不会停止,一旦删除所有问题,就会引发错误。如果您使用while questionList
,则所有问题用完后循环将停止:
questionList = [Question1, Question2, Question3, Question4, Question5]
random.shuffle(questionList)
while questionList:
print(questionList.pop()())