【问题标题】:Removing function from randomly shuffled list using random.shuffle (Python)使用 random.shuffle (Python) 从随机洗牌列表中删除函数
【发布时间】:2016-10-17 03:44:06
【问题描述】:

所以,最近我很难让 random.shuffle 从列表中随机选择并执行一个函数。我已经能够使该过程正常工作,但现在我希望在选择问题后将其从列表中删除。我将向您展示理论上应该有效的代码,但只是随机选择问题并重复它们。

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

如果您对如何获得我正在寻找的结果有任何想法,请不要害怕发表评论或添加新答案!

~干杯!

【问题讨论】:

标签: python function


【解决方案1】:

您每次循环都在重新创建 questionList

试试这个:

questionList = [Question1, Question2, Question3, Question4, Question5]
random.shuffle(questionList)
for q in questionList:
    print(q())

【讨论】:

    【解决方案2】:

    问题是您总是在 while 循环中设置 questionList,每次都将其替换为包含所有问题的新填充版本。如果将其移出循环,它应该可以正常工作。

    另外,洗牌一次就足够了,所以你也可以把它移出循环。

    此外,while 1 永远不会停止,一旦删除所有问题就会引发错误。如果您使用 while questionList 而不是在所有问题用完后循环将停止:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 2013-10-20
      • 2011-03-05
      • 2013-03-20
      相关资源
      最近更新 更多