我想創建一個列表中的每個項目的「路徑」。例如輸入列表:創建「數據樹」路徑遞歸迭代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