我有以下Python3代码:
parts = ['g109343.t1', '3e908dc966fefe367e64dc9d98b0d3ab', '1358', 'SMART', 'SM00343', '', '600', '616', '0.36', 'T', '17-07-2019', 'IPR001878', 'Zinc finger, CCHC-type', 'GO:0003676|GO:0008270']
trans_id=parts[0]
db=parts[3]
id=parts[4]
start=int(parts[6])
end=int(parts[7])
name="Name="+parts[5]
dbxref = "Dbxref=" + db + ':' + id
note="Note="+db
t=';'.join([name,dbxref,note])
print("!!!" + parts[11])
if len(parts) == 12:
t = t + ";_Accession=" + parts[11]
if len(parts) == 14:
go_terms = parts[13].split('|')
t = t + ";Ontology_term=" + ','.join(go_terms)
print(t)
为什么没有if len(parts) == 12:
被触发并且_Accession
在最终输出中丢失,如下所示?
!!!IPR001878
Name=;Dbxref=SMART:SM00343;Note=SMART;Ontology_term=GO:0003676,GO:0008270
答案 0 :(得分:1)
两个问题的答案相同:
len(parts)
Out[1]
14
因此它将永远不会输入条件。
答案 1 :(得分:1)
parts
作为14
元素,这就是为什么它提供输出的原因,但是要知道有多少个元素,请执行以下操作:
print(len(parts))
它将输出:
14