> 백엔드 개발 > 파이썬 튜토리얼 > 중첩된 사전 및 목록에서 모든 키 발생을 효율적으로 추출하는 방법은 무엇입니까?

중첩된 사전 및 목록에서 모든 키 발생을 효율적으로 추출하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-13 01:46:02
원래의
903명이 탐색했습니다.

How to Efficiently Extract All Occurrences of a Key in Nested Dictionaries and Lists?

중첩 사전 및 목록에서 모든 키 발생을 찾는 방법

복잡한 데이터 구조를 탐색하여 특정 값을 추출하는 것은 일반적인 과제일 수 있습니다. 프로그래밍에서. 이 문서에서는 깊이 중첩된 사전 및 목록 구조 내에서 특정 키의 모든 발생을 찾는 문제를 다루며 자세한 솔루션 및 성능 분석을 제공합니다.

다음과 유사한 중첩 목록과 사전으로 구성된 샘플 사전을 생각해 보세요.

{
    "id": "abcde",
    "key1": "blah",
    "key2": "blah blah",
    "nestedlist": [
        {
            "id": "qwerty",
            "nestednestedlist": [
                {
                    "id": "xyz",
                    "keyA": "blah blah blah"
                },
                {
                    "id": "fghi",
                    "keyZ": "blah blah blah"
                }
            ],
            "anothernestednestedlist": [
                {
                    "id": "asdf",
                    "keyQ": "blah blah"
                },
                {
                    "id": "yuiop",
                    "keyW": "blah"
                }
            ]
        }
    ]
}
로그인 후 복사

목표는 이 구조에서 "id" 키의 모든 값을 추출하여 다음과 같은 목록을 만드는 것입니다.

["abcde", "qwerty", "xyz", "fghi", "asdf", "yuiop"]
로그인 후 복사

이를 달성하기 위해 다양한 접근 방식이 제안되었습니다. , 포함:

  1. gen_dict_extract: 사전, 목록 및 문자열을 확인하여 키가 일치할 때 값을 생성하는 재귀 함수입니다. (가장 빠르고 권장됨)
  2. find_all_items: 특히 사전에 작동하는 유사한 재귀 함수.
  3. findkeys: 키를 재귀적으로 검색하는 함수 사전을 통해 반복합니다.
  4. get_recursively: 재귀를 사용하여 값을 추출하는 일반 함수.
  5. find: get_recursively와 유사한 간결한 재귀 함수 .
  6. dict_extract: 중첩 루프를 사용하여 구조를 탐색하고 사전과 목록을 확인하는 함수입니다.

성능 분석에 따르면 gen_dict_extract 기능은 구조 내에서 다양한 데이터 유형에 대한 신뢰성과 지원을 보장하면서 속도 측면에서 다른 기능보다 뛰어납니다.

위 내용은 중첩된 사전 및 목록에서 모든 키 발생을 효율적으로 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿