【发布时间】:2014-12-04 04:54:59
【问题描述】:
我正在尝试为 _list 中的每个项目创建一个“路径”列表。例如输入列表:
_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
其中第一个分支是 0。那么由于 _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]。
这是否可以以某种方式递归地完成,以适用于列表列表的任何深度/复杂性?
我知道这不是错误/问题,但我有点菜鸟,递归函数对我来说仍然是个谜。任何帮助都感激不尽。即使是简单的伪代码也能让我开始。 谢谢,
【问题讨论】:
-
我怀疑没有人仍然理解您的问题描述。如果您仍然需要答案,能否请您尝试更清楚或发布一个来源的链接?
-
我不确定正确的术语是什么,但它就像“为嵌套列表编制索引”,但它不仅仅注意项目的深度,而是为每个列表/子列表创建一个带有数字的列表。我再举一个例子。此外,图像链接很好地描述了数据树路径是什么。
-
您链接中的“Grasshopper”是否引用了“Grasshopper ALGORITHMIC MODELING FOR RHINO”?如果我是正确的,是否有可能在您的标签中添加标签“犀牛”真的很有帮助?
-
进一步看,我发现还有一个明确的grasshopper 标签,您可能想添加...也就是说,我将您的问题留给犀牛和蚱蜢的专家 ciao
-
我不认为这是一个蚱蜢/犀牛问题。我正在寻求帮助创建一种方法,该方法将检查列表/嵌套列表,同时跟踪每个项目的列表深度/索引号,以便稍后可以用新列表替换该项目。
标签: python list nested-lists grasshopper