>백엔드 개발 >파이썬 튜토리얼 >Python 사전이 순서대로 있습니까?

Python 사전이 순서대로 있습니까?

silencement
silencement원래의
2019-06-17 15:10:198455검색

Python 사전이 순서대로 있습니까?

사전의 무질서란 데이터가 사전에 저장되는 순서와 사전에서 꺼내는 순서가 일치하지 않음을 의미합니다

Python 2의 사전은 순서가 없습니다

>>> d = {'a':-1,'b':-1,'c':-1}>>> d
{'a': -1, 'c': -1, 'b': -1}>>> for k,v in d.items():
...     print k,v
... 
a -1c -1b -1

그래서 어떻게 해야 할까요? 사전을 정돈해 두나요? OrderedDict를 사용하세요

>>> from collections import OrderedDict
>>> d = OrderedDict()
>>> d['a'] = 1
>>> d['b'] = 2
>>> d['c'] = 3
>>> d
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
>>> for k,v in d.items():
...     print k,v
... 
a 1
b 2
c 3

그럼 왜 순서가 없나요? 해시 구조에는 헤드 주소가 있고 내부 데이터는 서로 다른 목록 체인에 분산되므로 순서가 없는 것처럼 보입니다. 그러나 동일한 사전 세트의 경우 항상 연결할 식별자가 있으므로 읽을 때 데이터는 순서대로 수집되지만 특정 규칙에 따라 정렬되지는 않습니다.

Python3의 사전은 순서가 지정됩니다

>>> d = {'a':-1,'b':-1,'c':-1}
>>> d
{'a': -1, 'b': -1, 'c': -1}
>>> for k,v in d.items():
...     print(k,v)
... 
a -1
b -1
c -1

위 내용은 Python 사전이 순서대로 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.