>  기사  >  백엔드 개발  >  Python에서 사전을 순서대로 유지하는 방법(코드)

Python에서 사전을 순서대로 유지하는 방법(코드)

不言
不言앞으로
2018-10-11 14:24:563129검색

이 기사에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제