python map函数返回类型_使用map和lambda函数发送两个参数并返回两个值
因?yàn)槟f(shuō)您只需要一個(gè)模型,而不是每個(gè)值都需要一個(gè)新模型,所以這相當(dāng)簡(jiǎn)單。更改: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同時(shí)返回新值和模型,例如,如果它以前返回過(guò):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來(lái)使用map,則不要使用map;它不會(huì)為您帶來(lái)任何好處(在大多數(shù)映射函數(shù)不是內(nèi)置的CPython的情況下,生成器表達(dá)式或列表理解將以相同的速度甚至更快的速度運(yùn)行)。也就是說(shuō),在您的特定情況下,您不需要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))
或者只使用一個(gè)生成器表達(dá)式(除非該函數(shù)是用C語(yǔ)言實(shí)現(xiàn)的Python內(nèi)置函數(shù),map基本上不會(huì)獲得性能;如果您不想考慮map是否合適,請(qǐng)始終使用列表理解/生成器表達(dá)式而不是map是一個(gè)好主意):# Change outside parens to brackets, [], for list comp
hnd = (function_f(x, model) for x in list_value)
總結(jié)
以上是生活随笔為你收集整理的python map函数返回类型_使用map和lambda函数发送两个参数并返回两个值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android圆形头像 demo,And
- 下一篇: python怎么发图文_用Python发