我有一个函数,我在句子和文件路径中搜索正则表达式模式。要做到这一点,我需要将文本块化,以便它计算整个单词,而不是单个字符。
def print_word_and_match_fragment(text):
word_list = text.split('\') if '\' in text else text.split()
patterns = re.compile(r'^[a,A][b,B]{2,3}$')
d = dict()
for i in word_list: # Does something
对我来说,我必须在函数中创建一个局部三元变量来做我需要它做的事情,这似乎是不对的
为什么不可以呢:
def print_word_and_match_fragment(text = text.split('\') if '\' in text else text.split() ):
patterns = re.compile(r'^[a,A][b,B]{2,3}$')
d = dict()
for i in text: # Does something
有没有一种方法,我可以把三进制称为函数参数,或者至少是等价的东西?不一定是三进制。我有一些模糊的想法,可能是使用**args
或:=
。
这将适用于默认参数,但只有在读取函数定义时才会对求值一次
另见"Least Astonishment"和可变的默认参数
相反,您可以使用re.findall()
或re.finditer()
来选择性地包括//
和b
作为字边界