Python 3.5循环在每次迭代中生成一个新列表

问题描述 投票:0回答:1

我正在尝试编写一些代码(伪随机地)生成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

我想我理解为什么这件事正在发生,但我不确定我的问题的答案是什么......在此先感谢所有的鸣叫声,我肯定有一些明显的我没看见。

list loops random python-3.5
1个回答
0
投票

如果我正确理解了这个问题,目标是将一个功能重复19次。但是,此函数会在每次调用时缓慢地从列表中删除项目,从而无法超出池大小[[当前在问题中所写

© www.soinside.com 2019 - 2024. All rights reserved.