python 生成 树状结构

Posted 520zm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 生成 树状结构相关的知识,希望对你有一定的参考价值。

树状结构: 字典里只有一个键值对, key 为根, 值为一个列表, 列表里的某个或多个元素可以再进行分支(分支还是列表)

比如: 邮件的发件人, 收件人, 转发关系树状结构

forwarding_recp = re.compile(".*?发件人:(.*?);.*?发送时间:.*?收件人:(.*?)主题", re.S)

def parse_addr(addr, split_str=,):
    l = []
    if addr:
        for a in addr.split(split_str):
            l.append(utils.parseaddr(a)[1])
    return l

def gen_forwarding(con):  # 参数是解析过后的邮件正文
    re_ret = forwarding_recp.findall(con)
    forwarding = dict()
    for i in re_ret:
        from_addr = parse_addr(i[0])[0]
        to_addr = parse_addr(i[1], ";")
        del to_addr[-1]

        for k, v in forwarding.items():
            forwarding.clear()
            to_addr.remove(k)
            to_addr.append({k: v})
            forwarding[from_addr] = to_addr
        forwarding[from_addr] = to_addr
    return json.dumps(forwarding)

 

以上是关于python 生成 树状结构的主要内容,如果未能解决你的问题,请参考以下文章

javascript 对含有parent_id的数组进行拓扑排序,然后生成树状结构

List生成树状结构 && 广度优先遍历树节点

Python代码阅读(第40篇):通过两个列表生成字典

如何在原数组的基础上生成树状数组

如何有效地将树状数据结构插入 postgres

python机器学习之决策树