如何在具有多个参数的函数上使用 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]
.
希望这是有道理的!
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]
.
希望这是有道理的!