应用地图函数时,将变量投射到Python中



在python中的一组项目映射时,是否可以投射内部函数的第二个参数?

使用MONADIC使用Int铸件功能时,它可以简单地工作:

list(map(int, ["4","3","1","2"]))

,但我想使用映射:

使用int的二元形式int(" 1101",2)将多个二进制数字施加到int上。
list(map(int(,2), ["1101","0001","1100","0011"]))

您需要lambda

list(map(lambda x : int(x,2), ["1101","0001","1100","0011"]))

但是,当您需要listlambdamap时,这是您只需要 list Gracemension 的死赠品:

[int(x,2) for x in ["1101","0001","1100","0011"]]

(需要lambda时,更清晰,更短,比map更快)

int函数具有签名:

int(x, base=10)

这样我们就可以制作一个partial,在其中分配base=2为:

from functools import partial
list(map(partial(int, base=2), ["1101","0001","1100","0011"]))

partial作为第一个参数作为函数(此处 int)以及其他(命名和未命名)参数。它构建了一个可以填充某些参数本身的函数。

如果您需要将参数传递给int,则需要将其包装在功能中。您可以使用普通功能:

def func(i):
    return int(i, 2)

或者您可以使用lambda功能定义:

lambda i: int(i, 2)

您的代码将是:

list(map(lambda i: int(i, 2), ["1101","0001","1100","0011"]))

但是,正如@Jean所说,一旦到达这一点,您应该认真考虑使用maplambda的理解。

最新更新