Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python数据结构表示一个无限树,具有属性和循环,直到最后一个深度_Python_Python 3.x - Fatal编程技术网

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

Python数据结构表示一个无限树,具有属性和循环,直到最后一个深度,python,python-3.x,Python,Python 3.x,我有一套多层次/深度的分类: 1. A - A1 - A11 - A12 - A121 - A122 -A2 2. B 3. C - C1 - C2 我需要 在python数据结构中表示这些类别。我在列表中有关于列表的内容,但我认为这对我没有帮助,因为我需要知道类别(A、A1、A2)的深度关系和名称 l=[A->[A1]->[A12]->[A121,A122]] 循环浏览所有类别列表,转到最后一个深度,并随机选择其中

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

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

  • 在python数据结构中表示这些类别。我在列表中有关于列表的内容,但我认为这对我没有帮助,因为我需要知道类别(A、A1、A2)的深度关系和名称
  • l=[A->[A1]->[A12]->[A121,A122]]

  • 循环浏览所有类别列表,转到最后一个深度,并随机选择其中一个类别
  • 例如:

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

    首先,为了进行测试,我将手动创建结构,但我想稍后从CSV导入,您可以使用第三方Python包,称为anytree表单

    代码.py 输出

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

    听起来像是一个计划,你的问题是?数据目前以什么形式存储,请分享一个例子。请参考此链接@zipa数据未存储,首先我想做一个手动数据结构,然后从csv或web@zwer我的问题在“我需要”部分,因为我不知道如何开始后面使用的结构是什么来表示数据?因为首先我想使用手动结构来测试部分代码,在使用csvIf之前,您可以在安装anytree后引用Node.py,Node基本上是一个类对象,有两个数据成员,(self.name,self.parent),该节点及其父节点的名称。它会随着节点数量的增加而不断增长
    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
    >>>