이 프로그래밍 시나리오에서 우리의 목표는 잠재적으로 다중 계층 사전 구조를 탐색하고 값이 다음과 같은 키-값 쌍을 인쇄하는 것입니다. 중첩된 사전 자체가 아닙니다. 값이 중첩된 사전인 경우 이를 재귀적으로 탐색하고 키-값 쌍도 인쇄해야 합니다.
이를 달성하려면 간단한 반복 기술로는 충분하지 않을 수 있습니다. 대신 재귀의 힘을 활용할 수 있습니다. 다음은 모든 깊이의 중첩 사전을 효과적으로 처리하기 위해 재귀를 통합하는 수정된 함수입니다.
def myprint(d): for k, v in d.items(): if isinstance(v, dict): myprint(v) else: print("{0} : {1}".format(k, v))
초기 사전으로 myprint를 호출하면 함수가 재귀 루프에 들어갑니다. 각 키-값 쌍을 방문하여 값이 사전인지 확인합니다. 그렇다면 함수는 값 사전을 새 입력으로 사용하여 자신을 호출하여 중첩된 수준으로 효과적으로 드릴다운합니다.
값이 사전이 아닌 경우 함수는 단순히 현재 키-값 쌍을 인쇄합니다. 이 프로세스는 사전의 모든 수준을 탐색할 때까지 계속됩니다.
다음은 샘플 중첩 사전을 사용한 데모입니다.
d = { "xml": { "config": { "portstatus": {"status": "good"}, "target": "1", }, "port": "11", } } myprint(d)
이렇게 하면 원하는 출력이 생성됩니다.
xml : {config: {portstatus: {status: good}, target: 1}, port: 11} config : {portstatus: {status: good}, target: 1} portstatus : {status: good} status : good target : 1 port : 11
보시다시피 이 함수는 사전을 반복적으로 반복하여 중첩되지 않은 모든 값을 인쇄하고 중첩된 값으로 드릴다운합니다. 리프 노드에 도달할 때까지 사전을 실행합니다.
위 내용은 중첩된 사전에서 키-값 쌍을 재귀적으로 반복하고 인쇄하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!