2017-11-16 5 views
-4

이것이 중복되는 경우 사과드립니다.파이썬 - 파이썬 튜플 목록에서 개별 요소를 정렬하는 방법

Sort a list of tuples depending on two elements 이 따라 온 두 요소

내가 가지고있는 것은 튜플

나는 다음과 같은 정렬 된 목록으로 끝낼 할
unsorted_list = [(50,45), (35,40)] 
sorted_list = [(35,40), (50,45)] 

의 정렬되지 않은 목록입니다. 나는 다음을 시도했다 :

sorted(unsorted, key=lambda element: (element[0], element[1])) 

나의 결과는 내가 원했던 것이 아니었다.

[(35, 40), (45,50)] 
+5

귀하의 출력은 당신이 당신이 원하는 말을 것으로 보인다, 그래서 당신이 요구하는지 불분명하다. – jonrsharpe

+1

BTW, 특정 키 함수는 중복됩니다. 즉, 두 요소 튜플이 키 함수 arg없이 정렬되는 방법입니다. –

+0

죄송합니다. 원하는대로 수정했습니다. 내내 번호를 주문하고 싶습니다. 감사! –

답변

0

는 튜플은 불변, 그래서 당신은 단순히 종류의 내용을 할 수 없습니다. 오래된 튜플의 정렬 된 항목을 포함하는 새로운 튜플을 만들어야합니다. 다음은 두 항목 튜플 목록으로이를 수행하는 간단한 방법입니다.

unsorted_list = [(50,45), (35,40)] 
sorted_list = [(min(t), max(t)) for t in sorted(unsorted_list)] 
print(sorted_list) 

출력

[(35, 40), (45, 50)] 

또 다른 옵션은

sorted_list = [(u, v) if u<=v else (v, u) for u,v in sorted(unsorted_list)]