您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

提取在嵌套字典和列表中找到的叶子值集(不包括“无”)

提取在嵌套字典和列表中找到的叶子值集(不包括“无”)

这是参考答案的改编,以使用内部函数和单个函数set。它还使用递归为问题中包含的样本输入生成预期输出。它避免了使每个叶子都经过整个调用堆栈。

from typing import Any, Set


def leaves(struct: Any) -> Set[Any]:
    """Return a set of leaf values found in nested dicts and lists excluding None values."""
    # Ref: https://stackoverflow.com/a/59832594/
    values = set()

    def add_leaves(struct_: Any) -> None:
        if isinstance(struct_, dict):
            for sub_struct in struct_.values():
                add_leaves(sub_struct)
        elif isinstance(struct_, list):
            for sub_struct in struct_:
                add_leaves(sub_struct)
        elif struct_ is not None:
            values.add(struct_)

    add_leaves(struct)
    return values
其他 2022/1/1 18:44:12 有370人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶