我是一名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并行工具。
假设:
- 在所有可迭代对象上完成实际函数需要大约1.5小时(因此希望使用并行
map()
函数) - 该函数很复杂,不能使用列表推导式
parfor
函数的良好替代品。
partial
不能用于指定任意精度的位置参数。例如,如果您想始终提供第三个参数,则必须使用其关键字,或者您必须使用一个 lambdalambda x,y: func(x,y,const)
。 - Bakuriu