我有这条:
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
的每个变量中。我需要的是将所有制表符分隔的条目存储在单独的变量中,如上面的示例所示。
答案 0 :(得分:1)
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)