代码之家  ›  专栏  ›  技术社区  ›  Pickels

Python:遍历树添加html列表(ul)

  •  0
  • Pickels  · 技术社区  · 14 年前

    我有一个python代码,它将遍历一个树结构。我试图添加ul和li标签的功能,但我不是很成功。我以为我可以保持代码干净,没有太多的条件,但现在我不那么肯定了。

    def findNodes(nodes):
    
        def traverse(ns):
            for child in ns:
                traverse.level += 1
                traverse(child.Children)
                traverse.level -= 1
    
        traverse.level = 1
        traverse(nodes)
    

    这是我用来遍历树结构的基本函数。最终结果应该是嵌套的ul和li标记。如果需要,我可以张贴我自己的不工作的例子,但他们可能有点混乱。

    更新:参数示例

    def findNodes(nodes):
    
        def traverse(ns, level):
            for child in ns:
                level += 1
                traverse(child.Children, level)
                level -= 1
    
        traverse(nodes, 1)
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   habnabit dwc    14 年前

    我删除了未使用的level参数。添加任何类型的文本都是留给读者的练习。

    def findNodes(nodes):
        def traverse(ns):
            if not ns:
                return ''
    
            ret = ['<ul>']
            for child in ns:
                ret.extend(['<li>', traverse(child.Children), '</li>'])
            ret.append('</ul>')
            return ''.join(ret)
    
        return traverse(nodes)