안녕하세요, 여러 변수로 중첩 목록을 정렬하는 방법을 알아 내려고하고 있습니다. 일부는 1,2,3으로 정렬되지 않고 미리 지정된 목록으로 정렬됩니다. 예중첩 목록을 객체 목록으로 정렬
:이 초래
List=[[XD,1],[XD,3],[XD,2],[X5,2],[X5,3],[XT,2]]
:
[[XD,1],[XD,2],[XD,3],[XT,2],[X5,2],[X5,3]]
첫번째 요소는 sortbylist 번호순 단순히 번째 요소에 의해 분류된다. 나는 현재의 코드를 사용하는 것을 시도하고있다
SortByList={'XD': 'A', 'XT':'B', 'XQ': 'C','X5': 'D'}
:
List.sort(key=SortByList.__getitem__ x: x[0])
List=sorted(List,key=itemgetter(1))
그러나 이것은 작동하지 않습니다. 어떤 힌트? 이 작업을 수행하는 가장 쉬운 방법 중
하나는 :
Result=sorted(List, key=lambda x:(SortByList[x[0]],x[1]))
이것은 파이썬에서 직접 실행할 때 완벽하게 작동합니다. 그러나 이것을 프로그램 내부에 배치하면 목록을 정렬하지 않는 것처럼 보입니다. 어떤 아이디어? – Daniel
@Ophion :이 코드는 단순히 결과를 출력합니다. 'List'에 다시 할당하지 않습니다. 'List = sorted (List, key = ...)'로 변경하거나'List.sort (key = ...)'를 사용하십시오. – NPE