파이썬 사전은 중첩될 수 있습니다. 즉, 사전 내에 사전이 있습니다. 이 기사에서는 중첩된 사전이 있을 때 사전에서 중첩 수준을 계산하는 방법을 살펴봅니다.
문자열 변환 사용
이 접근 방식에서는 전체 사전을 문자열로 변환합니다. 그런 다음 사전이 중첩된 수준을 나타내는 왼쪽 { 수를 계산합니다.
예시
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