정렬에 사용되는 것을 볼 수 있지만이 코드 줄의 개별 구성 요소는 실제로 무엇을 의미합니까?이것은 무엇을 의미합니까? key = lambda x : x [1]?
key=lambda x: x[1]
무엇 lambda
, x[1]
등의 [1]
...
예
max(gs_clf.grid_scores_, key=lambda x: x[1])
sort(mylist, key=lambda x: x[1])
정렬에 사용되는 것을 볼 수 있지만이 코드 줄의 개별 구성 요소는 실제로 무엇을 의미합니까?이것은 무엇을 의미합니까? key = lambda x : x [1]?
key=lambda x: x[1]
무엇 lambda
, x[1]
등의 [1]
...
예
max(gs_clf.grid_scores_, key=lambda x: x[1])
sort(mylist, key=lambda x: x[1])
lambda
효과적으로 인라인 함수를 생성하는 이유 x:
, 무엇. 명명 된 기능 사용
max(gs_clf.grid_scores_, key=lambda x: x[1])
: 예를 들어, 본 실시 예를 다시 작성할 수 이때
def element_1(x):
return x[1]
max(gs_clf.grid_scores_, key=element_1)
를 max()
모두보다 크면, 그 두 번째 요소 (x[1]
) 해당 배열의 요소를 리턴 다른 요소의 두 번째 요소. 표현 방법의 또 다른 방법은 함수 호출이 의미하는대로입니다. x[1]
을 키으로 사용하여 max 요소를 반환하십시오.
lambda
은 anonymous function을 의미합니다. 이 경우이 함수는 단일 인수 x
을 사용하고 x[1]
을 반환합니다 (즉, 인덱스 1의 항목은 x
).
이제 sort(mylist, key=lambda x: x[1])
은 key
의 값을 기준으로 mylist
을 정렬합니다 (목록의 각 요소에 적용). 마찬가지로 max(gs_clf.grid_scores_, key=lambda x: x[1])
은 각 요소에 대해 key
이 반환하는 값의 최대 값을 gs_clf.grid_scores_
으로 반환합니다.
또한이 특정 기능이 이미 라이브러리 중 하나에 포함되어 있음을 지적해야합니다 : operator
. 특히 operator.itemgetter(1)
은 key
과 같습니다.
distances.sort(key=lambda x: x[1])
이것은 기능입니다. 그리고 여기 x는리스트의 두 번째 요소 인 x[1]
을 정렬 함수에 추가하는 목록입니다. 따라서 기본적으로 모든 목록의 두 번째 요소 (예 : x [1])를 정렬 함수에 추가합니다. 이 사실을 이해하시기 바랍니다.
Ehi! 그것은 1 시간 전 다른 질문에 대한 나의 대답입니다. :디 – fog