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

Python 在两个字典之间创建和匹配标记,python,dictionary,match,token,Python,Dictionary,Match,Token,更新所以我有一种织物,有上千行,看起来像这样 BRCA A2ML1错义突变TCsA-A1-A0SO A8K2U0 W408C BRCA A2ML1错义突变TCsA-A8-A08P A8K2U0 R433H BRCA A2ML1错义突变TCsA-B6-A0WZ A8K2U0 P1341L 我已经编写了代码来捕获整行代码和第6个令牌(下面的代码) 现在我正在尝试将第六个令牌与它自己的行匹配 我希望作为输出得到的是,我正在尝试编写一个如下所示的输出文件(这只是几个示例) A8K2U0 |开始=1结束…

更新所以我有一种织物,有上千行,看起来像这样

BRCA A2ML1错义突变TCsA-A1-A0SO A8K2U0 W408C

BRCA A2ML1错义突变TCsA-A8-A08P A8K2U0 R433H

BRCA A2ML1错义突变TCsA-B6-A0WZ A8K2U0 P1341L

我已经编写了代码来捕获整行代码和第6个令牌(下面的代码) 现在我正在尝试将第六个令牌与它自己的行匹配

我希望作为输出得到的是,我正在尝试编写一个如下所示的输出文件(这只是几个示例)

A8K2U0 |开始=1结束….R433H | BRCA A2ML1错义突变TCsA-A8-A08P A8K2U0 R433H

和其他线路一样

A8K2U0 |开始=1结束….P1341L | BRCA A2ML1错义突变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)
问题:我如何使用if语句来确定
A177T
是否位于
coaward ZNF271错义突变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
或根据DSM的建议:

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

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

我格式化了你的代码,但老实说,我仍然不明白你在问什么。你能试着把它整理一下,让它更容易理解吗?@mgilson我刚刚更新了这有意义吗?不,没有。问题在哪里?输出是什么?为什么输出不正确?@ColinDunklau所以我想知道如何使用if语句来测试A177T是否在CoaDreard ZNF271错义突变MAAA-AA-3947 Q14591 A177T中?你就快到了。。。这些字段代表什么?如果我在一个字典中有test_字符串并在另一个字典中搜索该怎么办。我的代码会与之类似吗?在中使用带有字符串的
可能会很危险,因为很难知道是否存在类似于
'BA177T'
'A177T2'
的子字符串。如果您正在搜索的是类似于单词的内容(即用空格括起来),最好先使用
.split()
,然后在列表上的
中使用
。@ChadD重写您的问题,使其仅包含输入数据、示例代码以及您希望从数据中获取的内容。这应该澄清things@DSM在哪里使用.split()?