在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