2017-04-08 22 views
0

我們如何編寫遞歸函數column2list_rec(grid, n),其中grid是列表列表,n是一個整數,返回一個列表,該列表包含元素位置n每行網格。 假設對於網格的每一行(即,元素)0≤n< len(r)。該方法使用Python中的遞歸提取列表列表中的垂直列表

例如: 名單:

[ [ 'aa', 'bb', 'cc', 'dd' ], 
    [ 'ee', 'ff', 'gg', 'hh', 'ii', 'jj' ], 
    [ 'kk', 'll', 'mm', 'nn' ] ] 

的期望輸出

column2list_rec(x,3) 
return value: ['dd', 'hh', 'nn' ] 
+4

氣味像功課.. 。 –

+0

和w hy應該遞歸地完成嗎?一個簡單的遞歸算法就足夠了。 –

+0

'zip(* x)[3]'(python2)或'list(zip(* x))[3]'(python3)可以滿足您的需求。我想真正的挑戰是添加一些令牌遞歸;-) –

回答

0

現在,我得到:

if len(grid)>0: # not empty 
    my_list = [] 
    item = grid[0][n] 
    my_list.append(item) 
    grid.pop(0) 
    if len(grid) >0: 
     return my_list + column2list_rec(grid, n) 
    else: 
     return my_list 
else: 
    return [] 

```