我正在尝试基于比较集合A的子字符串之间的重叠来创建邻接矩阵。如果子字符串之间存在重叠,那么我将在矩阵M中存储+1,否则不会。我已经编写了一个代码,使用序列匹配器来比较字符串,但是在尝试执行代码时,我遇到以下错误。你知道吗
import numpy
import array
from difflib import SequenceMatcher as sm
##
###read the file
##f=open('spectrum.txt','r')
##s=f.readlines()
##a=str(s)
a='{ATG,TGG,TGC,GTG,GGC,GCA,GCG,CGT}'
p= dict(enumerate(a[1:-1].split(",")))
print p
n= p.keys()[-1]
print p.keys()[1]
M=numpy.zeros([n,n],int)
print M
for i in range(0,n-1):
for j in range(0,n-1):
if i==j:
pass
elif sm(None,p.keys(i),p.keys(j))!=0:
M[i,j]+=1
else:
pass
print M
你的回溯告诉你到底是什么问题。在此行中:
您已将
i
作为参数传递给.keys
。keys
不接受参数。你可能想使用keys()[i]
,但实际上,如果你真的想访问.keys()[i]
,那么你应该在某个地方使用items()
而不是keys()
,这样你就可以从字典中访问(key, value)
形式的2元组了。你知道吗相关问题 更多 >
编程相关推荐