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

2024-10-01 11:19:48 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: namereturnfoodefargsdosomethinglist
1条回答
网友
1楼 · 发布于 2024-10-01 11:19:48

您可以做什么:

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在提供的iterable上迭代,因此它将使用传递列表中的每个元素执行函数,如果将它保持为NAME_LIST,则每次都将是一个字符串-因此,函数将失败,因为它有两个位置参数,所以这是要执行的列表中每个元素的最小大小map在-因此{}

希望这有意义

相关问题 更多 >