我正在尝试设计一个python函数(function\ a),它接收两个输入
基本上,我要做的是根据接收到的句子的类型(input name:'check')解析其中的重要部分(input name:'sent'))
类型有20种,每种类型都有一个正则表达式
例如,如果句子类型(即check)为2,则应该使用名为c2的正则表达式来解析句子
例如
c2 = re.compile('(?:sale|sold|provide).*?\sto\s(.*)', re.I|re.S)
(所以我有20个正则表达式,从c1到c20)
对于摘要,如果此函数接收type(check)
'n',则使用c'n'来解析句子
所以,到目前为止我试过的是:
def newpythonfunction(sent, check):
c1 = re.compile(~~~)
c2 = re.compile(~~!@!)
.....
c20 = re.compile(!@!@!#!#)
c_check = 'c' + str(check)
return c_check.findall(sent)
然而,正如您可能已经预料到的,由于c_check
是一个字符串,它不能像c'n'一样工作
我知道我可以用20句if来处理
然而,我想知道是否有更好的和有效的方法(至少对我写代码)使它工作
您可以使用
locals()['c{}'.format(check)]
,但最好是将表达式组织在适当的数据结构中,如列表或dict:相关问题 更多 >
编程相关推荐