Что вы можете сделать:
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 позиционных аргумента, так что это минимальный размер каждого элемента для списка, который вы хотите do map
on - следовательно [NAME_LIST]
.
Надеюсь, это имеет смысл!