2017-02-15 3 views
0

以下のコードは、symblsDictの辞書キーとその値を変数lineに置き換えます。この文脈ラムダ関数でPythonコードスニペットの下で動作するLambda関数

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

.Iは、我々がどのような値を代入されていないような可変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, 
+1

'm'は関数シグネチャ' lambda: 'で宣言されています。 – TigerhawkT3

答えて

0

ラムダ関数は、コンパイルされた正規表現パターンのsubメソッドに渡されています。このメソッドは、パターンがいくつかのテキストにマッチするたびに、 "match"オブジェクトで関数を呼び出します。

関数が呼び出されると、引数名mがマッチオブジェクトにバインドされます。 lambdaのコロンの後の式は、戻り値を計算するために引数mを使用できます。subは、文字列に代入されます。

関連する問題