如何检查词典是否包含词典?

2024-04-27 11:50:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一个函数,如果在我的字典中包含另一个字典,则返回true。你知道吗

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

有没有直接的方法?你知道吗


Tags: 方法函数infalsetruefordictionaryreturn
2条回答

你在找这样的东西

def has_inner_dict(d):
    for v in d.values():
        if isinstance(v, dict):
            return True
    return False

您可以在上循环(因此在dict.itervalues()dict.values()上循环,这取决于您的Python版本),并使用^{}来测试每个值。将其与^{} 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

如果您想检测任何映射类型(不仅仅是字典),您可以测试^{}而不是dict;这也可以让您处理任何可选的映射实现。你知道吗

相关问题 更多 >