Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 사전의 깊이 찾기

<시간/>

파이썬 사전은 중첩될 수 있습니다. 즉, 사전 내에 사전이 있습니다. 이 기사에서는 중첩된 사전이 있을 때 사전에서 중첩 수준을 계산하는 방법을 살펴봅니다.

문자열 변환 사용

이 접근 방식에서는 전체 사전을 문자열로 변환합니다. 그런 다음 사전이 중첩된 수준을 나타내는 왼쪽 { 수를 계산합니다.

예시

dictA = {1: 'Sun', 2: {3: {4:'Mon'}}}
dictStr = str(dictA)
cnt = 0
for i in dictStr :
   if i == "{":
      cnt += 1
print("The depth of dictionary: ",cnt)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

The depth of dictionary: 3

재귀 포함

사전의 값을 확인하기 위해 자신을 재귀적으로 호출하는 함수를 설계할 수 있습니다. 내부 요소가 사전으로 평가되는 한 함수는 스스로를 호출하고 사전의 깊이에 대한 결과를 얻습니다.

예시

def finddepth(dictA):
   if isinstance(dictA, dict):
      return 1 + (max(map(finddepth, dictA.values()))
         if dictA else 0)

   return 0

dictA = {1: 'Sun', 2: {3: {4:'Mon'}}}
print("The depth of dictionary: ",finddepth(dictA))

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

The depth of dictionary: 3