如何匹配python中的字符串

时间:2017-11-07 04:45:18

标签: python python-2.7

我正在尝试创建一个函数来匹配字符串,但没有得到预期的结果。我是python的新手

请建议如何获得预期结果

到目前为止我已经完成了。

脚本

g4 = 'NKXD'
protein = 'SMQTIKCVVVGDGAVGKTCLLISYTTNKFPSEYVPTVFDNYAVTVMIGGEPYTLGLFDTAGQEDYDRLRPLSYPQTDVFLVCFSVVSPSSFENVKEKWVPEITHHCPKTPFLLVGTQIDLRDDPSTIEKLAKNKQKPITPETAEKLARDLKAVKYVECSALTQKGLKNVFDEAILAALEPPEPKKSRRCVLL'

def g4_match(g4,protein):
  N = "NTAG"
  K = "KLQ"
  D = "DE"
  spl_mismatch, mismatch = (0,0)
  for x,y in zip(g4,protein):
    if not (x == 'X' or y == x):
      if(x == 'T' and y in N):
        spl_mismatch+=1
      elif(x == 'L' and y in K):
        spl_mismatch+=1
      elif(x == 'E' and y in D):
        spl_mismatch+=1
      else:
        mismatch+=1
    if mismatch > 0 or spl_mismatch > 2:
        return False
  return True

print g4_match(g4,protein)

目前获得输出

((10, 'GDGAVGK'), (57, 'DTAG'), (132, 'NKQK'), (156, 'ECSAL'))
((10, 'GDGAVGK'), (63, 'DYDR'), (132, 'NKQK'), (156, 'ECSAL'))
((10, 'GDGAVGK'), (65, 'DRLR'), (132, 'NKQK'), (156, 'ECSAL'))
((10, 'GDGAVGK'), (76, 'DVFL'), (132, 'NKQK'), (156, 'ECSAL'))

但预期的输出是:

N="TAG"
K="LQ"
D="E"

在第三列中有NKQK但它可以是NKXD X可以是任何字符串,在这种情况下没有不匹配或TLXDALXD以及{{1 }}和GLXD以及TQXDAQXD以及GQXDNLXE。如果输入匹配,我需要第三列中的输出。

0 个答案:

没有答案