打印数据结构/数据类型层次结构

2024-09-29 21:33:35 发布

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

假设我们有一个由嵌套数据类型组成的数据结构,有没有一种方法可以打印如下数据类型:

Dict()<List()<Dict()>>

带有值的数据结构示例:

complexDataStructure = {"FirstDict":[{"AnotherDict":[[1,2,3],[1,2,3] ]}  , {"OneMoreDict":[[1,2,3],[1,2,3] ]}  ]}

>>> output Dict()<List()<Dict()>>

您可以看到嵌套结构及其值,我想以类似的方式打印数据类型,并考虑使用递归方法,但不是每个数据结构都是可iterable的(如set()),也不是所有的值都可以通过切片(dict())访问


Tags: 方法示例数据结构output方式iterable结构dict
1条回答
网友
1楼 · 发布于 2024-09-29 21:33:35

请查看以下各项是否符合您的要求:

def ppt(data):
    if isinstance(data, int):
        return "Int()"
    elif isinstance(data, str):
        return "Str()"
    elif isinstance(data, list):
        if len(data) == 0:
            return "List()"
        else:
            return "List()<" + ", ".join([ppt(item) for item in data]) + ">"
    elif isinstance(data, dict):
        if len(data) == 0:
            return "Dict()"
        else:
            return "Dict()<" + ", ".join([ppt(data[key]) for key in data]) + ">"
    else:
        return "Unknown()"

当输入是[{}, []]时,输出确实是List()<Dict(), List()>

>>> print(ppt([{}, []]))
List()<Dict(), List()>

但当输入是complexDataStructure时,输出是:

Dict()<List()<Dict()<List()<List()<Int(), Int(), Int()>, List()<Int(), Int(), Int()>>>, Dict()<List()<List()<Int(), Int(), Int()>, List()<Int(), Int(), Int()>>>>>

这与你的Dict()<List()<Dict()>>不同,但在我看来更准确。如果你还有别的想法,请给我反馈。你知道吗

相关问题 更多 >

    热门问题