簡體   English   中英

在循環Python中分配變量

[英]Assigning variables in loop Python

我有這個:

As, Bs, Cs, Ds, Es = ([] for i in range(5))
for line in infile:
   line = line.rstrip()
    a, b, c, d, e = line.split('\t')
    As += [a]
    Bs += [b]
    Cs += [c]
    Ds += [d]
    Es += [e]

由於我的內存不止5個,因此我想使用一個循環來完成此任務,該循環所花費的代碼行少於全部寫出的代碼。 就像是:

As, Bs, Cs, Ds, Es = ([] for i in range(5))
dynamic_variable_list = [As, Bs, Cs, Ds, Es]
    for line in infile:
        line = line.rstrip()
        for i in range(len(line.split('\t'))):
            dynamic_variable_list[i] += line.split('\t')[i]

在我的情況下,它將單個字符存儲在列表中,而:

dynamic_variable_list[i] += line.split('\t')

將所有制表符分隔的條目存儲到dynamic_variable_list每個變量中。 我需要的是將所有制表符分隔的條目存儲在單獨的變量中,如頂部示例所示。

dynamic_variable_list[i] += line.split('\t')[i]

可以改寫為

As += a

而不是

As += [a]

像以前一樣用括號括起來,或使用append 或更確切地說,拆分列表,然后使其更加清晰。

dynamic_variable_list = [As, Bs, Cs, Ds, Es]
    for line in infile:
        columns = line.rstrip().split('\t')
        assert(len(columns)==len(dynamic_variable_list))
        for index, col in enumerate(columns):
            dynamic_variable_list[index].append(col)

暫無
暫無

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

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