Dictionary도 순서가 있나요?
dic = {}
        for i in range(26, 0, -1):
            j = str(i)
            if i>=10:
                j += '#'
            dic[j] = chr(i+96)
        for i,j in dic.items():
            print(i, j)

숫자(+#)를 알파벳으로 바꾸는 프로그램을 짜는 문제를 풀고 있다가, Dictionary 자료형과 관련하여 실험을 좀 해봤습니다.
range()부분을 (1, 27)로 하느냐에 따라, (26, 0, -1)로 하느냐에 따라 제일 밑줄의 print(i,j) 출력 순서가 달라졌습니다.
dic.items()를 for i, j로 돌렸을 때는, '먼저 대입된 순서대로' i,j에 할당된다는 결론이 나왔는데, 맞는 건가요?
혹시 Dictionary의 순서에 대해 더 알고 계신게 있으시면 공유해 주시면 감사하겠습니다.

유정후 382

2022년 8월 27일 10:51 오후

목록으로
1개의 답변이 있습니다. 1 / 1 Page

Python 3.7부터, dictionary는 ordered 속성을 가집니다.
Python 2 ~ Python 3.6까지는 ordered를 보장하지 않습니다.

Python 2 ~ Python3.6에서 ordered 속성을 가진 dictionary type을 standard library로 제공합니다. collections.OrderedDict

TAO

M 2022년 9월 1일 11:31 오전

ordered 속성을 가진다는 의미가 순서가 있다는 의미인가요? 주문된 속성이란 의미를 잘 이해하지 못하겠습니다 ㅎㅎ.. - gyumin9109님, 2022년 9월 1일 9:40 오후 추천 , 대댓글
order의 사전적 의미 중에 정렬, 순서라는 뜻도 있습니다! ordered : 정렬된 - TAO님, 2022년 9월 1일 9:48 오후 추천 , 대댓글
그리고 여기서의 order는 alpabetical이 아니라, insertion order입니당! - TAO님, 2022년 9월 1일 9:48 오후 추천 , 대댓글