在两个词典之间创建和匹配标记

时间:2012-07-24 18:42:42

标签: python dictionary match token

更新所以我的纺织品有数千行,看起来像这样

BRCA A2ML1 Missense_Mutation TCsA-A1-A0SO A8K2U0 W408C

BRCA A2ML1 Missense_Mutation TCsA-A8-A08P A8K2U0 R433H

BRCA A2ML1 Missense_Mutation TCsA-B6-A0WZ A8K2U0 P1341L

我编写了捕获整行的代码,只有第6个令牌(下面的代码) 现在我正在尝试将第6个标记与其自己的行匹配。

我希望得到的输出是我正在尝试编写一个看起来像这样的输出文件(这只是几个例子)

  

A8K2U0 | START = 1 END ..... | R433H | BRCA A2ML1 Missense_Mutation TCsA-A8-A08P A8K2U0 R433H

与其他行相同

  

A8K2U0 | START = 1 END ..... | P1341L | BRCA A2ML1 Missense_Mutation TCsA-B6-A0WZ A8K2U0 P1341L

这是我的字典代码:

lookup = defaultdict(list) 
wholelookup = defaultdict(list)
wholeline = defaultdict(list)
mydata = open('file.txt')

for line in csv.reader(mydata, delimiter='\t'):
    code = re.match('[a-z](\d+)[a-z]', line[-1], re.I)
    if code:      
       lookup[line[-2]].append(code.group(1))
       wholelookup[line[-2]].append(code.group(0))
       s=' '.join(line)
       wholeline[line[-2]].append(s)

1 个答案:

答案 0 :(得分:1)

  

问我如何使用if语句来确定A177T中是否有COADREAD ZNF271 Missense_Mutation MAAA-AA-3947 Q14591 A177T

中平凡:

test_string = 'A177T'
to_search = 'COADREAD ZNF271 Missense_Mutation MAAA-AA-3947 Q14591 A177T'
if test_string in to_search:
    print "found", test_string

或者根据帝斯曼的建议:

test_string = 'A177T'
to_search = 'COADREAD ZNF271 Missense_Mutation MAAA-AA-3947 Q14591 A177T'
if test_string in to_search.split(' '):
    print "found", test_string

但我有一种明显的感觉,我误解了这个问题。