我正逐行阅读文件,并试图解析每一行的一部分并用它做任务。我尝试解析的信息是25个字符串
我正在尝试
for i in info:
Consequence=i[0]
IMPACT=i[1]
.
.
HGNC_ID = i[24]
但显然有更好的方法。我尝试制作所有字符串的列表并将它们初始化为空字符串,然后执行:
for counter,val in enumerate(info_list):
try:
val=i[counter]
break
except:
val=""
,其中
info_list=(Allele,Consequence...)
虽然不起作用,但它打印空字符串并且计数器始终为零,即使info_list的长度为25。
分配这些值的最佳方法是什么? (请记住,某些" infos"数组中可能有23或24个值,在这种情况下,我希望为缺失值分配一个空字符串,缺少的值只会在最后没有混淆哪些变量缺失)
如果我可以添加更多信息,请告诉我们!
谢谢! :)
答案 0 :(得分:0)
您的第一个代码版本似乎没有太大问题。我不知道你为什么在那里思考"显然"应该是更好的方式。
你可以做的一件事就是让它更清晰:
if len(info) == 25:
Consequence, IMPACT , . . ., HGNC_ID = info
elif len(info) == 24:
Consequence , IMPACT , . . ., HGNC_ID = info + ''
但我怀疑这是否能让它变得更好。
您可能想要考虑的不是使用变量,而是使用哈希表或命名元组来表示从该行读取的值。