2016-11-13 1 views
0

두 문자열의 가장 긴 하위 시퀀스를 찾으려면이 파이썬 코드를보고 있지만 "#line A"는 왜 3 번째 매개 변수가 key = len인지 이해하지 못합니다. 내가 배웠던 것에서 len은 문자열의 길이를 반환하는 함수이지만 여기에서 어떻게 사용되는지는 이해할 수 없습니다.내가 이해하지 못하는 파이썬 구문

def lcs(xstr, ystr): 
    """ 
    >>> lcs('thisisatest', 'testing123testing') 
    'tsitest' 
    """ 
    if not xstr or not ystr: 
     return "" 
    x, xs, y, ys = xstr[0], xstr[1:], ystr[0], ystr[1:] 
    if x == y: 
     return x + lcs(xs, ys) 
    else: 
     return max(lcs(xstr, ys), lcs(xs, ystr), key=len) #line A 
+0

'max' 함수의 명명 된 매개 변수는 https://docs.python.org/2/library/functions.html#max입니다. 기본적으로'lcs'에 대한 2 회 재귀 호출의 결과는'len'에 주어지고 비교됩니다. 이것은 기본적으로 가장 긴 길이의 결과를 반환합니다. – Carcigenicate

+0

앞으로 질문을 올리기 전에 문서를 찾아보십시오. – TigerhawkT3

답변

0

기능은 기본적으로 자연 값 순서에 따라 계산됩니다.

하지만 기능을 대체 "키"로 전달하여 자신의 기준을 설정할 수 있습니다 (sort도 마찬가지 임).

여기에 최대 2 개의 전달 된 값이 문자열 길이에 따라 수행되며 문자열은 영숫자 순서가 아닌 기본값 인 max이이 중 가장 긴 문자열을 반환합니다.

관련 문제