그래서 2D 목록이 있고 두 번째 키 파일을 사용하여 정렬하려고합니다. 아무도 내가 그 일을 어떻게 할 것인지 알고 있니?Python 2D 키 목록을 사용자 정의 키로 정렬
Heres는 예를 들어 입력 : 여기
And here is an example input file:
first_nm,last_nm,gender,cwid,cred_hrs,qual_pts,gpa
John,Roe,M,44444444,40,150,3.75
Jane,Roe,F,66666666,100,260,2.6
John,Doe,M,22222222,50,140,2.8
Jane,Doe,F,88888888,80,280,3.5
Penny,Lowe,F,55555555,40,140,3.5
Lenny,Lowe,M,11111111,100,280,2.8
Denny,Lowe,M,99999999,80,260,3.25
Benny,Lowe,M,77777777,120,90,0.75
Jenny,Lowe,F,33333333,50,90,1.8
Zoe,Coe,F,0,50,130,2.6
그것을 정렬하는 열쇠 여기
gender,ascend,string
gpa,descend,float
last_nm,ascend,string
그리고 것을 (당신이 그것을 정렬하는 방법에 따라 다소있을 수 있습니다) 해당 입력 및 키에 대한 출력 :
first_nm,last_nm,gender,cwid,cred_hrs,qual_pts,gpa
Jane,Doe,F,88888888,80,280,3.5
Penny,Lowe,F,55555555,40,140,3.5
Zoe,Coe,F,00000000,50,130,2.6
Jane,Roe,F,66666666,100,260,2.6
Jenny,Lowe,F,33333333,50,90,1.8
John,Roe,M,44444444,40,150,3.75
Denny,Lowe,M,99999999,80,260,3.25
John,Doe,M,22222222,50,140,2.8
Lenny,Lowe,M,11111111,100,280,2.8
Benny,Lowe,M,77777777,120,90,0.75
나는 내장 된 sort()를 사용하려고 생각했지만 n 내가 3 개의 다른 시간을 분류하는 경우에 나는 그것을 사용할 수 있는지 확실하다. 내가 거꾸로 정렬해야 할 것 같아? (last_nm, gpa, gender)
나는 닫는 괄호를 놓쳤다 고 생각합니다. –
@AvinashRaj - 그렇게했습니다. 결정된. –
@ncerice :'lambda x : (x [2], x [6] * -1, x [1])'는 2D 목록의 한 행을 넘겨주는 함수이며, 요소 6에 -1을 곱하고 요소 1을 반환합니다.'sort()'는이 튜플을 행의 값이 아닌 정렬 할 키로 사용합니다. 정렬을 수행하기 위해 키를 여러 번 검사해야하는 경우에도 각 행의 키는 한 번만 계산되므로이 키 변환 작업은 매우 효율적입니다. –