如何在具有多个参数的函数上使用 python 映射

How to use python Maps on functions with more than one arguments

NAME_LIST = ["abc1","abc2","cde1"]
class abc:
    @staticmethod
    def foo(a,name,*args):
         a = do_something(name,*args)
         return do_another(a)

当有多个函数参数时,如何使用 python 映射传入名称列表并打印输出

像这样,我想将 a,*args 保留为常量(但不想使其成为默认参数)

list(map(abc.foo, NAME_LIST))

我想将 NAME_LIST 变量传递给 name

你能做什么:

def myFunc(x,y, *args):
    return x*y+sum(args)

x=[[1,4,5,5,6,7], [3,2,1], [7,8], [2,9,0,4,3]]

y=list(map(lambda a: myFunc(*a), x))

y

#outputs:
[27, 7, 56, 25]

所以在你的情况下:

NAME_LIST = ["abc1","abc2","cde1"]
class abc:
    @staticmethod
    def foo(a,name,*args):
         a = do_something(name,*args)
         return do_another(a)

list(map(lambda x: abc.foo(*x), [NAME_LIST]))

请注意 map 迭代提供的可迭代对象,因此它将使用传递列表的每个单独元素执行您的函数,如果您将其保持为 NAME_LIST 每次都将是一个字符串- 因此您的函数将失败,因为它有 2 个位置参数,因此这是您要在 map 上执行的列表的每个元素的最小大小 - 因此 [NAME_LIST].

希望这是有道理的!