Python,函数式编程,映射到更高级别

Kla*_*her 8 python functional-programming map

有没有人知道如何在Python中轻松地将函数映射到嵌套列表中的更高级别,即相当于Map[f, expr, levelspec]Mathematica中的函数.

Eri*_*ric 11

你可以轻松自己动手

def map_level(f, item, level):
    if level == 0:
        return f(item)
    else:
        return [map_level(f, i, level - 1) for i in item]
Run Code Online (Sandbox Code Playgroud)
>>> 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]]
Run Code Online (Sandbox Code Playgroud)