Python数据结构来表示一个具有属性和循环直到最后一个深度的无限树

2024-09-30 01:48:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一套多层次/深度的分类:

1. A
   - A1
     - A11
     - A12
       - A121 
       - A122
     -A2
2. B
3. C
   - C1
   - C2

我需要

  1. 在python数据结构中表示这些类别。我有关于列表中的列表,但我认为这对我没有帮助,因为我需要知道类别的深度关系和名称(A,A1,A2)

l=[A->;[A1]->;[A12]->;[A121,A122]]

  1. 循环遍历所有类别列表,转到最后一个深度,然后随机选择其中一个类别

例如:

  • 第一个元素A,进入最后一个深度,在A121和A122之间随机选择
  • 第三个元素C,在C1,C2之间随机选择

首先,对于测试,我将手动创建结构,但我希望稍后从CSV导入


Tags: gta2元素数据结构列表关系a1分类
1条回答
网友
1楼 · 发布于 2024-09-30 01:48:24

您可以使用第三方Python包,称为anytree formhttps://pypi.org/project/anytree/

pip install anytree

你知道吗代码.py你知道吗

from anytree import Node, RenderTree

A = Node("A")
A1 =  Node ("A1", parent=A)
A11 = Node("A11", parent = A1)
A12 = Node("A12", parent = A1)
A121 = Node("A121", parent = A12)
A122 = Node("A122", parent = A12)
A2 = Node("A2", parent=A1)
B = Node("B")
C = Node("C")
C1 = Node("C1", parent=C)
C2 = Node("C2", parent=C)

print (A)
print(A122)

for pre, fill, node in RenderTree(A):
    print("%s%s" % (pre, node.name))

输出

============= RESTART: C:/Python36/MyTestScripts/anytree_test.py =============
Node('/A')
Node('/A/A1/A12/A122')
A
└── A1
    ├── A11
    ├── A12
    │   ├── A121
    │   └── A122
    └── A2
>>> 

相关问题 更多 >

    热门问题