python set은 왜 순서가 없을까?

조성현·2022년 11월 8일
1

발단

  • 스파르타 내일배움캠프 슬랙(이하 슬랙)에 질문이 하나 올라왔다.

전개

  • 1. 교집합, 합집합 이전에 set에서 순서가 바뀌는게 아닐까라는 생각으로 검증에 들어갔다.

  • 2. 생각대로 set으로 집합을 생성할 때 마다 순서가 랜덤하게 구성 됨을 알 수 있었다.

  • 3. 구글링을 통해 set에는 순서가 없고, 집합 안에서는 unique한 값을 가진다는 사실을 알 수 있었다.

  • 4. 왜 순서 보장을 하지 않는지에 대한 구글링을 진행하여, 스택오버플로우의 질문과 답변(그간의 많은 토론들 까지 첨부된)을 찾을 수 있었다.


결론

- 집합의 주요 용도에 맞는 활용을 위해 여러 케이스에 모두 최적화 된 방향으로 설계 된 것이다.

수학적 접근도 답변 아래쪽에 있기에 흥미로워 담아봅니다.

The unordered nature of sets in Python parallels the behavior of mathematical sets. Order is not guaranteed.

The corresponding mathematical concept is unordered and it would be weird to impose such as order - R. Hettinger


참고자료

stackoverflow의 Q.(Why don't Python sets preserve insertion order?)

profile
맛있는 음식과 여행을 좋아하는 당당한 뚱땡이

1개의 댓글

comment-user-thumbnail
2022년 11월 8일

그렇군요

답글 달기