我正在尝试编写一些代码(伪随机地)生成7个数字的列表。我让它运行一次。我希望能够循环这段代码以生成多个列表,我可以将其输出到txt文件中(我不需要帮助,我很愿意使用I / O和文件:)
我有此代码:
import random
pool = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,
58,59]
list1 = []
def spinAndPrune(x):
random.shuffle(pool)
#random.seed(random.randint(1, 50000000))
current_choice = random.choice(pool)
list1.append(current_choice)
pool.remove(current_choice)
random.shuffle(pool)
run_it = [spinAndPrune(pool) for x in range(7)]
这可以很好地用作一次性操作,但是我想循环它以创建所需数量的列表。起初,我想到了这样的东西(我猜这是行不通的,但是无论如何这里都是这样):
def repeater():
for i in range(19):
a = [selectAndPrune(pool) for x in range(7)]
print(list1)
repeater()
当然可以提供:
IndexError: Cannot choose from an empty sequence
我想我理解为什么这件事正在发生,但我不确定我的问题的答案是什么......在此先感谢所有的鸣叫声,我肯定有一些明显的我没看见。
如果我正确理解了这个问题,目标是将一个功能重复19次。但是,此函数会在每次调用时缓慢地从列表中删除项目,从而无法超出池大小[[当前在问题中所写