정렬을 설정하시겠습니까?
아시다시피 세트의 요소 순서는 고려되지 않습니다. 그렇다면 Python 3에서 세트 정렬에 대해 이야기하는 것이 이치에 맞습니까?! (제목에 물음표가 있는 이유입니다.)
집합에서 요소를 빨리 찾으려면 정렬된 형태로 메모리에 저장하는 것이 바람직합니다.
몇 가지 예를 살펴보겠습니다. 동일한 집합에 있는 다른 데이터 유형의 요소는 어떻게 됩니까? 이러한 요소는 정렬하면 안 됩니다. print()
명령을 사용하여 요소를 인쇄하면 다음과 같이 출력됩니다.
a = {0, 1, 12, 'b', 'ab', 3, 2, 'a'}
인쇄(a) # {0, 1, 2, 3, 'a', 12, 'b', 'ab'}
이 경우 정렬되지 않은 값이 표시됩니다. 실행을 반복하면 출력 순서가 다를 수 있습니다. 그러나 이는 서로 다른 유형의 요소가 혼합된 경우에만 해당됩니다.
한 가지 유형(예: 숫자만)의 데이터를 표시해 보겠습니다.
= {0, 1, 12, 3, 2}
인쇄(a) # {0, 1, 2, 3, 12}
모든 요소가 순서대로 표시됩니다. 목록으로 변환해 보겠습니다.
= {0, 1, 12, 3, 2}
b = 리스트(a)
인쇄(b) # [0, 1, 2, 3, 12]
마찬가지로 오름차순으로 정렬된 요소가 목록에 기록되었습니다.
요소가 동일한 유형이면 정렬된 형식으로 메모리에 저장되는 것으로 나타났습니다. 하지만 기대하지 않는 것이 좋습니다. Python 알고리즘은 변경될 수 있습니다.
세트에서 정렬된 목록을 가져와야 하는 경우 정렬
(< code>sorted) 함수를 사용하여 ). 요소가 정확하게 정렬됩니다. 당신의 코드는 다른 사람들이 이해할 수 있을 것입니다.