如何比较存储在字典p中的两个子串?

时间:2015-11-29 02:07:44

标签: python dictionary

enter image description here

我试图基于比较集合A的子串之间的重叠来创建邻接矩阵。如果子串之间存在重叠,那么我将在矩阵中存储+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

1 个答案:

答案 0 :(得分:0)

您的追溯会告诉您究竟是什么问题。在这一行:

elif sm(None,p.keys(i),p.keys(j))!=0:

您已将i作为参数传递给.keyskeys不接受任何争论。您可能打算使用keys()[i],但实际上,如果您实际尝试访问.keys()[i],您应该使用items()代替keys() {1}}这样您就可以从字典中访问(key, value)形式的2元组了。