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

0 投票
1 回答
699 浏览
提问于 2025-04-16 02:44

我有一段Python代码,用来遍历一个树形结构。我想在这个函数里加上

  • 标签,但我做得不是很成功。我原本以为可以让代码保持简洁,不用太多条件判断,但现在我有点不确定了。

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

    这是我用来遍历树形结构的基本函数。最终的结果应该是嵌套的

    • 标签。如果需要的话,我可以发一些我自己写的但不工作的例子,不过可能会有点让人困惑。

      更新:带参数的例子

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

1 个回答

2

我去掉了没用的级别参数。至于添加任何文本的部分,就留给读者自己去练习吧。

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)

撰写回答