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