>  기사  >  백엔드 개발  >  중첩된 목록이 주어지면 가변 ​​깊이로 다단계 사전을 구성하는 방법은 무엇입니까?

중첩된 목록이 주어지면 가변 ​​깊이로 다단계 사전을 구성하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-17 11:10:30276검색

How to Construct a Multi-Level Dictionary with Variable Depth Given a Nested List?

깊이가 다양한 다단계 사전 만들기

질문:

다단계 사전을 어떻게 만들 수 있나요? 중첩된 값 목록이 주어지면 가변 ​​깊이를 사용합니까? 다음 샘플 목록을 고려하십시오.

<code>[A][B1][C1] = 1
[A][B1][C2] = 2
[A][B2] = 3
[D][E][F][G] = 4</code>

원하는 출력은 다음 구조와 유사한 다중 레벨 사전입니다.

<code>A
--B1
-----C1 = 1
-----C2 = 1
--B2 = 3
D
--E
----F
------G = 4</code>

해결책:

defaultdict 모듈의 collections을 사용하면 삽입 문을 하드코딩할 필요 없이 동적으로 중첩 사전을 생성할 수 있습니다. defaultdict은 기존 키를 찾을 수 없는 경우 기본값을 반환합니다. 구현 방법은 다음과 같습니다.

<code class="python">from collections import defaultdict

# Define a function to create a nested dictionary with any level of depth
nested_dict = lambda: defaultdict(nested_dict)

# Create the nested dictionary using the nested_dict function
nest = nested_dict()

# Populate the nested dictionary with the given data
nest[0][1][2][3][4][5] = 6

print(nest)</code>

이 코드는 깊이가 7인 중첩 사전을 생성하며, 여기서 [0][1][2][3][4][5] 키의 값은 6으로 설정됩니다. 중첩 사전은 다음을 사용하여 액세스할 수 있습니다. 동일한 키 구조로 다양한 수준에서 데이터를 동적으로 생성하고 검색할 수 있습니다.

위 내용은 중첩된 목록이 주어지면 가변 ​​깊이로 다단계 사전을 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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