python在while循环中创建列表

时间:2015-08-31 13:33:36

标签: python list loops

我已经定义了一个函数来读取文件中的行到列表中。然后我想在while循环中调用这个函数。在第一个循环中正确创建列表,但以下循环创建一个空列表。

如何让我的代码每次都重新生成列表? (为了澄清,这不是最终的功能,但我已将我的代码中的问题隔离到列表的生成中)。

def get_random_gene_list(input):
    disease_genes = []
    for line in input:
        disease_genes.append(line.strip())

    return disease_genes

x=0
while x < 5:

    unpack_gene_list = get_random_gene_list(args.i)
    print unpack_gene_list


    x = x + 1

2 个答案:

答案 0 :(得分:0)

假设args.i是一个文件对象,你在第一个循环上读取文件,这会将文件指针放在文件的末尾。你需要在每个循环中重新读取文件吗?如果没有,您应该在while循环之外调用该函数并保存结果列表。事实上,你甚至不需要这个功能。此外,在这种情况下,您应该使用for循环。

unpack_gene_list = list(args.i)

x = 0
for x in range(5):
    print unpack_gene_list

答案 1 :(得分:0)

这对我来说很好,除非我误解了你的问题。问题可能出在你的输入中。

k = ['1','1','a','aa']

def get_random_gene_list(input):
    disease_genes = []
    for line in input:
        disease_genes.append(line.strip())
    return disease_genes

x=0
while x < 5:
    unpack_gene_list = get_random_gene_list(k)
    print unpack_gene_list
    x = x + 1

输出:

['1', '1', 'a', 'aa']
['1', '1', 'a', 'aa']
['1', '1', 'a', 'aa']
['1', '1', 'a', 'aa']
['1', '1', 'a', 'aa']

Process finished with exit code 0