>  기사  >  백엔드 개발  >  Python에서 무한 중첩 defaultdict를 어떻게 만들 수 있나요?

Python에서 무한 중첩 defaultdict를 어떻게 만들 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-11-24 04:35:11597검색

How Can I Create an Infinitely Nested defaultdict in Python?

무한 수준 중첩 기본 사전

질문

무한 중첩 기본 사전을 어떻게 만들 수 있나요? 즉, defaultdict의 기본값을 다른 defaultdict로 설정할 수 있습니까? 이렇게 하면 필요에 따라 필요한 사전을 자동으로 생성하는 임의 깊이의 중첩 구조가 가능해집니다.

예를 들어 다음 코드를 고려해보세요.

x = defaultdict(...stuff...)
x[0][1][0]
{}

이 시나리오에서 x[0]은 defaultdict가 되고, x[0][1]은 또 다른 defaultdict가 되고, x[0][1][0]은 표준이 됩니다. Dictionary.

답변

다른 defaultdict를 포함하는 defaultdict를 생성할 수 있지만 표준 defaultdict 인수에서는 이를 직접 지원하지 않습니다. 그러나 다중 레벨 중첩 defaultdict를 허용하는 간단한 해결 방법이 있습니다.

기본값을 다른 defaultdict로 정의하는 대신 기본값을 defaultdict를 반환하는 람다 함수로 정의하세요.

x = defaultdict(lambda: defaultdict(dict))

이 코드는 2단계 defaultdict를 생성합니다. 여기서 x[0]은 defaultdict이고 x[0][1]은 또 다른 defaultdict이며 값은 다음과 같습니다.

무한 수준 중첩의 경우 람다 함수에 추가 수준을 추가하기만 하면 됩니다.

x = defaultdict(lambda: defaultdict(lambda: defaultdict(...)))

이 해결 방법을 사용하면 임의로 중첩된 기본 사전을 생성할 수 있어 복잡한 데이터를 편리하게 관리할 수 있습니다. 자동 가치 창출 구조.

위 내용은 Python에서 무한 중첩 defaultdict를 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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