0

我在第 9 行收到错误“列表分配索引超出范围”我必须获取具有最大 gc 内容的键并打印 gc 内容值和键。这只是我正在做的一个例子,而问题可能包含超过 2 个序列。

d={"fff":'TTAGCCGAATTTGGC',"ddd":'TGATACTAGCGTAG'}
b=[]
a=[]
i=0 
for key in d:
    h=len(d[key])
    t=d[key].count('G')+d[key].count('C')
    content = (t*100)/h
    a[i]=content
    b[i]=key
    i+=1
val = max(a)
k = a.index(val)
print ("%s") % b[k]
print ("%f") % a[k]
4

1 回答 1

2

与其他一些脚本语言相比,您不能通过分配超出范围的索引来扩大 Python 列表。要放大列表,需要使用append方法,即替换:

a[i]=content
b[i]=key
i+=1

和:

a.append(content)
b.append(key)

后者会做你需要的,并且更容易启动。

于 2015-02-24T13:44:46.500 回答