Lambda函数在python代码snipp下工作

2024-03-28 20:34:51 发布

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

下面的代码将匹配的symblsDict字典键替换为变量line中的值。你知道吗

keys1 = ('|'.join(symblsDict.keys()))
robj1 = re.compile(keys1)
result = robj1.sub(lambda m: symblsDict[m.group(0)], line)

在这个上下文中,Lambda函数用于声明变量m,它保存匹配模式结果。我不明白变量m如何具有匹配模式结果,因为我们没有给m赋值,只是在函数中声明?你知道吗

 Content of Dictionary:{'FTP': 'FTP,COND=(0,LE)', 'TOTAL.LIB6': 'TOTAL.TEST.LIB', 'TOTAL.CTRX': 'TOTAL.TEST.CTRX', 'DD1': 'ZZ.VVMSSB', 'JHSOUT': '*', 'SOUT': '*', 'SALEDB': 'TEST12', 'EMAIL': 'EMAIL,COND=(0,LE)'
    Content of keys1: FTP|TOTAL.LIB6|TOTAL.CTRX|DD1|JHSOUT|SOUT|SALEDB|EMAIL
    Content of line: //             SOUT=A,
    Output://             *=A,

Tags: of函数声明emailline模式ftpcontent
1条回答
网友
1楼 · 发布于 2024-03-28 20:34:51

lambda函数被传递给已编译regex模式的sub方法。每当模式匹配某个文本时,该方法都会使用“match”对象调用函数。你知道吗

调用函数时,参数名m会绑定到匹配对象。lambda中冒号后面的表达式可以使用参数m来计算返回值,返回值sub将替换为字符串。你知道吗

相关问题 更多 >