使用random.shuffle(Python)从随机混洗列表中删除函数

时间:2016-06-15 20:41:26

标签: python function

所以,最近我在使用random.shuffle从列表中随机选择并执行一个函数时遇到了麻烦。我已经能够完成该流程,但现在我希望这些问题一旦被挑选就从列表中删除。我将向您展示理论上应该有效的代码,但只需随机选择问题并重复它们。

while 1:
    questionList = [Question1, Question2, Question3, Question4, Question5]
    random.shuffle(questionList)
    print(questionList.pop()())

如果您对如何获得我想要的结果有所了解,请不要害怕发表评论或添加新答案!

〜干杯!

2 个答案:

答案 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()())