我想创建一个列表中的每个项目的“路径”。例如输入列表:创建“数据树”路径递归迭代Python中的嵌套列表
_list = [[x,x,x], [[x,x,x],[x,x,x]], [x,x,x]]
期望的输出:
_list = [\
[[0,0,0],[0,0,0],[0,0,0]], \
[[[0,1,0],[0,1,0],[0,1,0]],[[0,1,1],[0,1,1],[0,1,1]]] \
[[0,2,0], [0,2,0], [0,2,0]]]
的想法是,我建立到一个类似的数据树中的路径:
http://studiomaven.org/images/2/2c/Grasshopper_Data_Tree.png
其中第一那么由于_list在其中有三个(3)列表,所以第一个二级分支是[0,0] [0,1]和[0,2],那么因为[0,1]分支还有一个列表在它又是另一个在第一个分支中的所有项都是[0,0,0],第二个分别是[0,1,0]和[0,1,1]的情况下,因为该分支中有两个列表,并且最终分支是[0,2,0]。
实施例2:输入:
_list = [x,x,x,x]
输出:
_list = [[0],[0],[0],[0]]
说明: 自单个深度列表中的所有的信息驻留在第一[0]的分支。每个项目x的路径[0]
实施例3: 输入:
_list = [[x,x,x],[x,x,x]]
输出:
_list = [[[0,0],[0,0],[0,0]],[[0,1],[0,1],[0,1]]]
说明: _List包含两个列表,以便第一支路0具有两个更多的分支在上面。在这种情况下,该级别的两个分支上的所有项目都是[0,0],第二个分支上的是[0,1]。
这可以以某种方式递归地完成,这种方式可以处理列表列表的任何深度/复杂度?
我明白,这不是一个错误/问题,但我有点noob和递归函数仍然是一个谜。任何帮助都感激不尽。即使是简单的伪代码让我开始。 谢谢,
我怀疑没有人仍然能够理解你的问题描述。如果你仍然需要一个答案,你可以请尝试更清楚或发布链接到源? – gboffi 2014-12-04 15:09:59
我不确定什么是适当的术语,但它像“索引嵌套列表”,而不是只记录项目的深度,它会为每个列表/子列表创建一个包含数字的列表。我会举另一个例子。此外,图像链接是数据树路径的一个很好的描述。 – konrad 2014-12-04 15:16:48
您的链接中的“蚱蜢”是否参考了_“Grasshopper 犀牛算法模型”_?如果我是正确的,是否有可能为你的标签添加标签'rhino'可以真正帮助你? – gboffi 2014-12-04 15:45:39