이 기사에서는 Python이 사전을 순서대로 유지하는 방법(코드)에 대해 설명합니다. 이는 특정 참조 가치가 있으므로 도움이 필요한 친구가 참조할 수 있기를 바랍니다.
1. 요구 사항
우리는 사전을 생성하고 동시에 사전을 반복하거나 직렬화할 때 그 안에 있는 요소의 순서를 제어할 수도 있습니다.2. 솔루션
사전의 요소 순서를 제어하려면 컬렉션 모듈에서 OrderedDict 클래스를 사용할 수 있습니다. 사전을 반복할 때 요소가 원래 추가된 순서대로 엄격하게 수행됩니다.
from collections import OrderedDict d=OrderedDict() d['a']=1 d['b']=2 d['c']=3 d['d']=4 #根据插入删除输出 for key in d: print(key,d[key])
결과:
a 1 b 2 c 3 d 4
OrderedDict는 나중에 직렬화하거나 다른 형식으로 인코딩할 수 있는 매핑 구조를 구축하려는 경우 특히 유용합니다. 예: JSON을 인코딩할 때 각 필드의 순서를 정확하게 제어하려면 먼저 OrderedDict에서 데이터를 구성하기만 하면 됩니다.
from collections import OrderedDict import json d=OrderedDict() d['a']=1 d['b']=2 d['c']=3 d['d']=4 j=json.dumps(d) print(j)
Result:
{"a": 1, "b": 2, "c": 3, "d": 4}OrderedDict는 내부적으로 다음을 기반으로 하는 이중 연결 목록을 유지합니다. 요소가 추가되는 순서로 키 위치를 정렬합니다. 새로 추가된 첫 번째 요소는 연결 리스트의 끝에 배치되며, 키 위치는 변경되지 않고 기존 키가 다시 할당됩니다.
참고: OrderedDict는 일반 사전 크기의 2배입니다. 이는 추가 연결 목록이 생성되기 때문입니다. 따라서 다수의 OrderedDict 인스턴스가 포함된 데이터 구조를 구축하려는 경우(예: CSV 파일에서 OrderedDict 목록으로 100,000개의 행 읽기) 애플리케이션의 요구 사항 분석을 수행하여 이점을 확인해야 합니다. OrderedDict를 사용하면 추가 메모리 오버헤드의 단점을 극복할 수 있나요?
위 내용은 Python에서 사전을 순서대로 유지하는 방법(코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!