Find depth of a dictionary in Python

PythonServer Side ProgrammingProgramming

A python dictionary can be nested i.e., there are dictionaries within a dictionary. In this article we will see how to calculated the level of nesting in a dictionary when there is a nested dictionary.

With string conversion

In this approach we convert the entire dictionary into a string. Then we count the number of left { that indicate to which level the dictionaries are nested.

Example

 Live Demo

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)

Output

Running the above code gives us the following result −

The depth of dictionary: 3

With recursion

We can design a function that will recursively call itself to check the values of the dictionary. As long as the inner element is evaluated to be a dictionary, the function will call itself and we will get the result for the depth of the dictionary.

Example

 Live Demo

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))

Output

Running the above code gives us the following result −

The depth of dictionary: 3
raja
Published on 26-Aug-2020 07:39:50
Advertisements