Python 3.6 이전 버전에서는 사전의 키 순서가 보장되지 않았습니다. 이로 인해 사전을 반복하거나 해당 키에 액세스할 때 예기치 않은 결과가 발생할 수 있습니다.
문제를 이해하려면 다음 코드를 고려하세요.
d = {'a': 0, 'b': 1, 'c': 2} l = d.keys() print(l)
이 예에서 키() 메서드 사전의 키 목록을 반환합니다. 그러나 목록에 있는 키의 순서는 보장되지 않습니다. Python 버전 2.7 이하에서는 키가 삽입 순서대로 반환되었습니다. 그러나 Python 3.0 이상에서는 키가 임의의 순서로 반환되었습니다.
이러한 불일치는 사전의 키 순서에 의존하는 경우 문제가 될 수 있습니다. 예를 들어 사전을 사용하여 식료품 목록에 항목을 저장하는 경우 사전에 항목을 추가한 순서대로 키가 반환될 것으로 예상할 수 있습니다. 그러나 Python 버전 3.0 이상에서는 이것이 보장되지 않습니다.
To解决这个问题,有两种选择。第一个是使用 collections.OrderedDict 类。这个类提供了对插入顺序的保证。以下代码展示了如何使用 OrderedDict:
from collections import OrderedDict d = OrderedDict([('a', 0), ('b', 1), ('c', 2)]) l = list(d.keys()) print(l) # ['a', 'b', 'c']
另一个选择是使用 sorted() 함수는 키를 오름차순으로 정렬합니다. 그러나 이를 위해서는 추가 단계가 필요하며 항상 원하는 동작이 아닐 수도 있습니다.
Python 버전 3.6 이상의 경우 사전은 기본적으로 삽입 순서를 유지합니다. 그러나 다양한 Python 구현에서 보장된 삽입 순서가 필요한 경우 OrderedDict를 사용하는 것이 좋습니다.
위 내용은 이전 Python 버전의 사전 키가 항상 순서대로 지정되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!