我已经定义了一个函数来读取文件中的行到列表中。然后我想在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
答案 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