Cod*_*ice 6 python functional-programming list-comprehension python-3.x
据我所知,一个列表参数map()可以被列表推导所取代.例如
map(lambda x : x**2, range(5))
Run Code Online (Sandbox Code Playgroud)
可以替换为
[x**2 for x in range(5)]
Run Code Online (Sandbox Code Playgroud)
现在,我将如何为两个并行列表执行类似的操作.换句话说,我有一行代码具有以下模式:
map(func, xs, ys)
Run Code Online (Sandbox Code Playgroud)
其中func()有两个参数.
如何使用列表理解做同样的事情?
Mar*_*ers 13
map()多个参数相当于在这些额外参数上使用zip()函数.使用zip()列表中的理解做同样的:
[func(x, y) for x, y in zip(xs, ys)]
Run Code Online (Sandbox Code Playgroud)
一般来说,任何map(func, a1, a2, .., an)表达式都可以转换为列表理解[func(*args) for args in zip(a1, a2, .., an)].