python - 如何在具有多个参数的函数上使用 python Maps
问题描述
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]
.
希望这是有道理的!
推荐阅读
- erlang - 为什么 Erlang / Elixir 观察者的内存使用数字不加起来?
- python - 在 tensorflow 中设置为 cuda 在 tensorflow 中使用 keras 在 python 中使用 cpu
- matlab - 从两个排序矩阵中创建一个新矩阵
- reactjs - 自定义工具提示不透明度始终为 1
- python - 没有 Numpy 的嵌套列表的递归迭代
- azure - 使用 Azure 数据工厂 V2 执行具有依赖项的 PySpark 作业
- javascript - 通过通用方法访问嵌套对象属性并更新其值
- python - 从字典中的列表创建字典
- mamp - MAMP 在启动时立即崩溃
- python - tensorflow, image segmentation convnet InvalidArgumentError: Input to reshape is a tensor with 28800000 values, but the requested shape has 57600