我在python工作,試圖將一個函數轉換這種結構:傳遞非迭代變量()與地圖進行評價的功能
def func(g,h,iterable):
return iterable*(g+h)
for iterable in range(20):
print func(2,3,iterable)
進入映射功能:
def func(g,h,iterable):
return iterable*(g+h)
print map(func,2,3,range(20)) #does not work...
我遇到的問題是通過map()
函數傳遞常量,目前我不知道該怎麼做。
我想要這個結構,所以我可以很容易地使用Ipython並行性工具。
假設:
- 實際功能完成對所有iterables大約需要1.5小時(因此渴望使用並行
map()
功能 - 功能是複雜的,不能使用列表理解
從本質上講,如果它不是很明顯,我是一個MATLAB程序員,他正在向Python跳躍,尋找matlab中的parfor
函數的一個很好的替代品。
請注意,'partial'不能用於以任意精度指定位置參數。例如,如果要始終提供第三個參數,您必須使用其關鍵字,或者您必須使用lambda'lambda x,y:func(x,y,const)'。 – Bakuriu
我在回答中添加了一條便條,感謝提示。 –
非常好,托馬斯的回答與Bakuriu的完善完美地爲我正在嘗試做的! –