簡體   English   中英

Python在while循環中創建列表

[英]python create list within while loop

我定義了一個函數,用於將文件中的行讀取到列表中。 然后,我想在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

假定args.i是文件對象,則在第一個循環中讀取文件,該循環將文件指針放在文件末尾。 您是否需要在每個循環中重新讀取文件? 如果沒有,則應在while循環外調用一次該函數並保存結果列表。 實際上,您甚至不需要此功能。 另外,在這種情況下,您應該使用for循環。

unpack_gene_list = list(args.i)

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

除非我誤解了您的問題,否則這對我來說很好。 問題可能出在您的輸入上。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM