질의응답 게시판
set 자료형이 어떤건지
파이썬셸에 코드를 쳐보면서 연습하다가 궁금한점이 생겨서 질문합니다.
>>> a = set('0123456789')
>>> b = {str(i) for i in range(10)}
>>> c = {'0','1','2','3','4','5','6','7','8','9'}
이렇게 세가지 방식으로 set를 생성해도
>>> a
{'5', '2', '8', '1', '4', '0', '6', '7', '9', '3'}
>>> b
{'5', '2', '8', '1', '4', '0', '6', '7', '9', '3'}
>>> c
{'5', '2', '8', '1', '4', '0', '6', '7', '9', '3'}
이렇게 출력을 시켜보면 같은 순서로 배열이 되는걸 봤습니다.
set 은 요소의 순서를 보장하지 않는 다는데
대신에 나름대로의 데이터를 배열하는 기준같은게 있는건가? 라는 생각이 들었는데
파이썬셸을 껐다가 다시 킨 후에 같은 내용을 쳐보니까
>>> a
{'2', '3', '9', '4', '1', '8', '6', '0', '7', '5'}
>>> b
{'2', '3', '9', '4', '1', '8', '6', '0', '7', '5'}
>>> c
{'2', '3', '9', '4', '1', '8', '6', '0', '7', '5'}
이런식으로 껏다 키기 전이랑은 배열이 다른데
한 파이썬 셸 안(?) 에서는 배열이 같게 출력이 되네요
규칙이 있는거 같기도 하고 없는거 같기도 하고 왜이런건가요?