Skip to main content
 首页 » 编程设计

python之如何检查字典是否包含字典

2025年05月04日1252php

我正在寻找一个函数,如果我的字典中包含另一个字典,它会返回 true。

for k in dictObj.iteritems(): 
    if k contain dictionary return false 
    else return true 

有没有直接的方法来做到这一点?

请您参考如下方法:

您可以遍历 values(因此遍历 dict.itervalues() 或 dict.values(),具体取决于您的 Python 版本), 并使用 isinstance()测试每个。将其与 any() function 结合起来和一个生成器表达式以使其高效:

return any(isinstance(v, dict) for v in dictObj.itervalues()) 

演示:

>>> dictObj = {'foo': 'bar'} 
>>> any(isinstance(v, dict) for v in dictObj.itervalues()) 
False 
>>> dictObj = {'foo': {'spam': 'eggs'}} 
>>> any(isinstance(v, dict) for v in dictObj.itervalues()) 
True 

如果你想检测任何映射类型(不仅仅是字典),你可以测试collections.Mapping而不是 dict;这也可以让您处理任何替代映射实现。