我有这个遍历树结构的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)
答案 0 :(得分:2)
我删除了未使用的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)