2013-08-16 16 views

risposta

11

È possibile banalmente rotolare il proprio

def map_level(f, item, level): 
    if level == 0: 
     return f(item) 
    else: 
     return [map_level(f, i, level - 1) for i in item] 
>>> double = lambda x: x * 2 
>>> data = [[1, 2, 3], [4, 5, 6]] 
>>> map_level(double, data, 0) 
[[1, 2, 3], [4, 5, 6], [1, 2, 3], [4, 5, 6]] 
>>> map_level(double, data, 1) 
[[1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6]] 
>>> map_level(double, data, 2) 
[[2, 4, 6], [8, 10, 12]] 
Problemi correlati