如何检查字典是否嵌套 - python

U10*_*ard 2 python dictionary nested conditional-statements

不要忘记,请参阅下面我的自我回答

假设我有一本字典,名为d

d = {'a': {1: (1,2,3), 2: (4,5,6)},'b': {1: (3,2,1), 2: (6,5,4)}}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,它是一个嵌套字典,我如何检测它是否是?


这里有些例子:

d = {'a':{1:(1,2,3),2:(4,5,6)},'b':{1:(3,2,1),2:(6,5,4)}}
d = {'a':1,'b':2}
Run Code Online (Sandbox Code Playgroud)

我想要输出:

True
False
Run Code Online (Sandbox Code Playgroud)

PS 字典列表不算。

U10*_*ard 12

使用any

print(any(isinstance(i,dict) for i in d.values()))
Run Code Online (Sandbox Code Playgroud)

第一个字典将返回:

True
Run Code Online (Sandbox Code Playgroud)

第二份遗嘱:

False
Run Code Online (Sandbox Code Playgroud)

解释:

  1. 去迭代 troughd的值。

  2. 用于isinstance检查类型是否为dict

  3. 使用外部any检查是否有任何元素True(字典)。

现在就这样,它会起作用的。