私信  •  关注

Prodiction

Prodiction 最近回复了
6 年前
回复了 Prodiction 创建的主题 » 如何理解python中的嵌套生成器?

所以,好吧,没有伟大的暗示的帮助,我必须这样做。它看起来是个不错的发电机。我的问题更多的是关于重新制定职能的策略,一个人可以屈服于一个简单的清单,而不是我具体做错了什么。

def flat_on_level(it, d=-1, level=None):
    """

    >>> list(flat_on_level([[[['a']]]], level=3))
    ['a']

    """
    if isinstance(it, dict):
        y = it.values()
    else:
        y = it
    if not isinstance(y, collections.Iterable):
        yield y
    else:
        for x in y:
            if d == level:
                yield x
            else:
                yield from flat_on_level(x, d=d + 1, level=level)