如何将参数传递给Python用户定义函数内部的正则表达式?

2024-04-29 05:48:01 发布

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

假设我有一个字符串,比如:

'ttagtagttattctctttgattgtgtgagagagacatccttacggtcagaactcgatcgtgtgactctagca'

我想用一个正则表达式关于芬德尔定位3个条目的任何实例(例如TTA或GTT)。在

这样的子函数怎么可能被用户定义为传递呢?在

我试过的是这样的:

def finder(sequence, codons):
    Y = re.findall(r'codons',sequence)
    return Y 

然而,当我试图在我上面给出的字符串上调用这个函数时,我使用了一些密码子的输入,比如'TTA',我得到的只是一个空列表。。。在

我认为这个列表是空的,因为在我函数的正则表达式中,“密码子”位于r旁边的引号内。有没有一种方法可以绕过这个方法将某些内容传递给正则表达式?在


Tags: 实例方法函数字符串用户定位目的列表
2条回答

您正在尝试匹配字符串"codons",而不是变量参数。试试这个:

def finder(sequence, codons):
   return re.findall(codons, sequence)

您的问题(使用python 3+):

# codon_search.py
import re

def finder(codon, fullseq):
    matched = re.findall(codon, fullseq)
    print (matched) 

sequence = "TTATGACGTTATTCTACTTTGATTGTGCGAGACAATGCTACCTTACCGGTCGGAAC"
search_str = "TTA"

#call function
finder(search_str, sequence)

输出:将在上述序列中找到3个匹配项

^{pr2}$

相关问题 更多 >