파이썬 - 정렬 기능에 사용되는 람다 식

일반적인 사용에서 1.lambda 표현

구문 :

람다 인수 : 표현

예:

람다는 X, Y = 추가 X + Y 
인쇄 (), 10 (20 추가) 
>>> 30

정렬 기능에 사용 2.lambda 식

아래의 코드에 도시 ​​된 바와 같이 A가 시간이면,리스트는 튜플들의 목록에 따라 정렬되고, 우리는, 파라미터 키, 즉 키워드를 사용해야 람다 익명 함수 서면 고정이다; X는 익명 함수 X [0] 익명 함수의 출력을 나타내며, 즉, 첫번째 투플에서, 입력리스트에서 해당 소자는이 경우 이름을 사용할 수있다, X로부터 단지 임시 이름, 터플을 나타낸다 요소, 즉 키를 X = [0]는 명령 문장 목록의 첫번째 소자에 의해 정렬을 의미한다.

A = [( 'B', 4, 'A', 12, 'D', 7), ( 'H', 6), ( 'J', 3)] 
a.sort (= 키 람다 X : X [0]) 
인쇄 (a) 
>>> [( 'A', 12, 'B', 4, 'D', 7), ( 'H', 6), ( 'J ', 삼)]

예를 들어 3, leetcode의 문제

937 재정렬 로그

 

당신은 로그의 로그 배열을 마십시오. 각 로그는 공백으로 구분 된 문자열입니다.

 

제 1 워드 영숫자 식별자 각 로그에 대해서는. 그런 다음, 다음 중 하나를

 

각 단어 식별자 소문자, 또는 뒤에,
각 단어의 식별자는 이상에만 숫자로 이루어진 것입니다.
우리는이 두 가지라는 문자와 숫자 로그 로그로 기록합니다. 각 로그는 식별자 뒤에 적어도 하나의 단어를 보장하는 것입니다.

 

모든 문자가 디지털 로그 로그 먼저 정렬되도록 순서가 로그인합니다. 알파벳 순서 내용으로 정렬 로그 문자, 식별자는 무시됩니다 동일한 내용에서 식별자로 분류. 그것은 원래의 순서에 따른 디지털 기록에 배치되어야한다.

 

로그의 마지막 순서를 돌려줍니다.

예 :

输入[ "A1 9 1 2 3", "G1 법 자동차", "zo4 4-7", "AB1 OFF 키 개", "A8 법 동물원"]
输出[ "G1 법 자동차", "A8 법 동물원" "오프 AB1 개 키", "A1 9 1 2 3", "4 zo4 7"]

아이디어 : 첫 번째 로그 로그 배열은 두 개의 배열 로그, 로그 저장 문자, 로그 메모리 번호, 질문의 의미로 구분되어, 앞으로 디지털 로그의 모든 문자를 기록 할 내용으로 분류 알파벳 문자를 기록 할 필요가,이 문자만을위한 것입니다 배열을 정렬 로그인하고 확인을 두 배열 향수병 결과를 반환합니다.

다음과 같이 코드입니다 :

클래스 솔루션 (객체) : 
    데프 reorderLogFiles (자기, 로그) : 
        "" " 
        : 유형 로그 : 목록 [STR] 
        : RTYPE : 목록 [STR] 
        " "" 
        L1 = [] 
        L2 = [] 
        로그 L에 대한 : 
            L 경우 [-1] .isalpha () 
                l1.append (l) 
            다른 : 
                l2.append (l) 
        l1.sort (키, λ = X (X [x.index ( '') +1 :]의 X [: x.index ( '')])) 
        반환 L1 + L2

  

 

추천

출처www.cnblogs.com/lovewhale1997/p/11424429.html