python - 用树定义的树节点
问题描述
我正在使用 python 中的树,这是我要解决的问题。
我所有的节点都有列表。对于每个父级,通过一次删除一个元素从父级列表中提取子级列表。
假设node1是 list1 [1,2,3]我希望 node1 有 3 个孩子(在这种情况下),其中每个孩子都是通过一次删除一个项目从列表 1 中提取的列表。所以node2=[2,3] node3=[1,3] 和node4=[1,2]
我正在使用anytree库,但在复杂节点上找不到足够的文档。我目前已经写了这个方法,但我怀疑语法:
from anytree import Node, RenderTree
#some othercode
def createNodes(parentnode):
for i in (0,K,1):
childnode=Node(parentnode.pop(i), parent=parentnode)
return childnode
此代码是否可以作为解决方案?ps:这是我在 Anytrees 上遵循的教程 [ https://anytree.readthedocs.io/en/2.6.0/intro.html#basics][1]
解决方案
尝试这个:
class Node:
def __init__(self, data):
self.data = data
self.child = 3*[None]
for i in range(len(data)):
elem = data.pop(i)
self.child[i] = data
print(self.child[i])
data.insert(i, elem)
data = [1, 2, 3]
root = Node(data)
输出:
[2, 3]
[1, 3]
[1, 2]
或者,你可以试试这个:
class Node:
def __init__(self, data, parent):
self.parent = parent
self.data = data
def createNodes(parentnode):
data = parentnode.data
for i in range(len(data)):
elem = data.pop(i)
childnode = Node(data, parent=parentnode)
print(childnode.data)
data.insert(i, elem)
root = Node([1, 2, 3], None)
createNodes(root)
输出:
[2, 3]
[1, 3]
[1, 2]
推荐阅读
- python - 如何统计列中的更改,即字符串,按其他列分组
- php - 在 XAMPP (Windows) 上安装 PECL 扩展
- python - 将功能传递给python中的排序
- html - 为什么粘性导航栏的内容不适合它?
- macos - 在 Mac 上的 Google 表格中对单元格应用绝对引用的快捷方式是什么?
- go - 如何在没有 URL 解码的情况下读取 fasthttp 中的查询参数
- logstash - Logstash:多行 XML 日志的自定义分隔符
- javascript - 了解初学者的循环冗余码算法
- css - 媒体查询/在弹出窗口和桌面上应用 CSS 的任何其他解决方案
- r - 将“Factoextra”和“corrplot”的图合并到一个图中