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

2024-03-28 10:19:13 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description here

我正在尝试基于比较集合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

Tags: 字符串代码inimportnumpyfor错误range
1条回答
网友
1楼 · 发布于 2024-03-28 10:19:13

你的回溯告诉你到底是什么问题。在此行中:

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

您已将i作为参数传递给.keyskeys不接受参数。你可能想使用keys()[i],但实际上,如果你真的想访问.keys()[i],那么你应该在某个地方使用items()而不是keys(),这样你就可以从字典中访问(key, value)形式的2元组了。你知道吗

相关问题 更多 >