列表理解等效于并行两个列表上的映射

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)].

  • @TigerhawkT3:不,我不知道如何将带有多个参数的`map()`翻译成列表comp,没有.我应该这样吗? (3认同)
  • @ TigerhawkT3:我不知道存在.这个答案现在是通过与另一个问题相比来判断的吗? (2认同)