Python - 检查生成器是否为空

时间:2018-05-29 13:09:34

标签: python dictionary

我正在尝试构建一个函数,以便如果一个密钥已存在于dict或任何属于该dict的子代中,则返回true,我找到了这个解决方案:

def gen_dict_extract(key, var):
    if hasattr(var,'iteritems'):
        for k, v in var.iteritems():
            if k == key:
                yield v
            if isinstance(v, dict):
                for result in gen_dict_extract(key, v):
                    yield result
            elif isinstance(v, list):
                for d in v:
                    for result in gen_dict_extract(key, d):
                        yield result

但问题是结果是一个生成器怎么做才能在密钥已经存在时变为true而false如果不存在则为false 谢谢

1 个答案:

答案 0 :(得分:1)

你应该在try / except块中使用带有version: '3' services: api: environment: - ASPNETCORE_ENVIRONMENT=Development - ORACLE_CS=Data Source = ip:port/sid;PERSIST SECURITY INFO=True;USER ID=user; Password=password; - NLS_LANG=.CL8MSWIN1251 ports: - "5050:80" networks: default: external: name: nat 个调用的生成器,除了next

StopIteration

请注意,此方法将留下" gen"作为一个已经产生的发电机'一旦这样你就需要创建另一个生成器来使用它。

使用它的最佳方式当然是不检查生成器是否为空但处理它的空虚"使用它时。

相关问题