2017-04-08 104 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 [] 

```