セット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
トレースバックは、問題が何であるかを正確に示します。この行の内容:
elif sm(None,p.keys(i),p.keys(j))!=0:
あなたは渡されてきたi
として引数に.keys
。keys
引数を取りません。あなたは可能性が使用することを意図していkeys()[i]
ますが、実際にアクセスしようとしている場合、現実的に、しかし.keys()[i]
どこかにあなたが使用してきたはずです、items()
代わりのkeys()
フォームでの2つのタプルにアクセスする必要があると思いますので(key, value)
、あなたの辞書からを。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加