문 lambda v: (-v[1], v[0])
함수를 정의하기위한 기능 V를 설명해주십시오. 이 함수는 이름에 할당되고 함수로 사용될 수 있습니다. 따라서 :
>>> f = lambda v: (-v[1], v[0])
>>> f((1, 2))
(-2, 1)
v
적어도 두 요소가 어떤 목록 또는 튜플 수있다. 함수는 두 번째 요소의 음수와 첫 번째 요소의 양수로 구성된 튜플을 반환합니다.
자세히 : word = "aaaaabbbbcccc"인 경우 top_chars 기능을 고려해 보겠습니다. 이 경우, list1 = counts.most_common()
의 결과는 다음
[('a', 5), ('c', 4), ('b', 4)]
참고리스트 1은 세 요소를 가지고, 각 요소는 하나 개 이상의 문자와 숫자로 이루어진 튜플이다. 다음 줄, 람다 함수가있는 줄은 위의 f
에 주어진 키에 따라 이것을 정렬합니다. 이제 list1
에 f
는 튜플의 각 무엇을 살펴 보자 :
>>> f(('a', 5))
(-5, 'a')
>>> f(('c', 4))
(-4, 'c')
>>> f(('b', 4))
(-4, 'b')
시작하려면 sort
수표,이 경우, 숫자 키의 첫 번째 요소. 그 숫자 중 가장 작은 숫자는 -5입니다. 따라서 sort
은 ('a', 5)를 정렬 된 목록에서 첫 번째로 넣습니다. 그 다음으로 작은 값은 -4입니다. 그러나 두 개의 두 개가 -4로 정렬됩니다. 목록에서 다음에 넣을 두 가지를 선택하려면 sort
키의 두 번째 값으로 확인해야합니다. 이 경우 두 번째 값은 'b'와 'c'입니다. 'b'가 'c'보다 먼저 정렬되기 때문에 sort
은 그 다음에 ('b', 4)를 그리고 그 다음에 ('c', 4)를 넣습니다. 최종 결과는 이유를 설명 :
>>> list1.sort(key=lambda v: (-v[1], v[0]))
>>> list1
[('a', 5), ('b', 4), ('c', 4)]
@yashwanth 업데이트 된 답변보기 – John1024