2017-02-15 1 views
0

아래 코드는사전 키를 변수 line에있는 해당 값으로 바꿉니다.파이썬 코드 조각 아래에서 작동하는 Lambda 함수

이러한 맥락에서
keys1 = ('|'.join(symblsDict.keys())) 
robj1 = re.compile(keys1) 
result = robj1.sub(lambda m: symblsDict[m.group(0)], line) 

람다 함수는 변수 m를 선언하는 데 사용되며, 우리가 어떤 값을 지정하지 않는 한이, .I 변수 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 메소드에 전달되고있다. 이 메서드는 패턴이 일부 텍스트와 일치 할 때마다 "일치"개체를 사용하여 함수를 호출합니다.

함수가 호출되면 인수 이름 m이 일치 객체에 바인딩됩니다. lambda에있는 콜론 뒤에 나오는 표현식은 sub이 문자열로 대체 할 반환 값을 계산하는 데 m 인수를 사용할 수 있습니다.