python map函数返回类型_使用map和lambda函数发送两个参数并返回两个值

因为您说您只需要一个模型,而不是每个值都需要一个新模型,所以这相当简单。更改:hnd = map(lambda (valua): function_f(valua), list_value)

致:model = ... initialize a model that will be passed to every call ...

hnd = map(lambda valua: function_f(valua, model), list_value)

只要确保function_f同时返回新值和模型,例如,如果它以前返回过:def function_f(val, model):

... calculate newval and make newmodel ...

return newval

把它改成:def function_f(val, model):

... calculate newval and make newmodel ...

return newval, newmodel

注意:如果需要使用lambda来使用map,则不要使用map;它不会为您带来任何好处(在大多数映射函数不是内置的CPython的情况下,生成器表达式或列表理解将以相同的速度甚至更快的速度运行)。也就是说,在您的特定情况下,您不需要lambda,例如,您可以:from future_builtins import map # Only on Py2; Py3 map is good

from itertools import repeat

model = ... initialize a model that will be passed to every call ...

hnd = map(function_f, list_value, repeat(model))

或者只使用一个生成器表达式(除非该函数是用C语言实现的Python内置函数,map基本上不会获得性能;如果您不想考虑map是否合适,请始终使用列表理解/生成器表达式而不是map是一个好主意):# Change outside parens to brackets, [], for list comp

hnd = (function_f(x, model) for x in list_value)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值