我正在尝试弄清楚如何正确使用Python中的map函数,以便我可以通过Pool.map实现多线程程序。基本上,我遇到了理解Python函数式编程的问题。我有:
import numpy as np
def maptest(foo,bars):
print foo * bars
main():
matA = np.eye(2)
matB = np.eye(2)
print map((lambda foo: maptest(foo, matB)), matA)
这将给我一个输出:
[[ 1. 0.]
[ 0. 0.]]
[[ 0. 0.]
[ 0. 1.]]
[None, None]
当我需要的输出仅为:
[[1. 0.]
[0. 1.]]
我该如何使用map和lambda函数?这是我第一次使用map和lambda。我之前只用过sympy的lambdify,但那只是我的函数式编程经验的一部分。谢谢!
matA
包装在另一个可迭代对象中。例如,一个只含有一个元素的元组:map((lambda foo: maptest(foo, matB)), (matA,))
或者列表[matA]
。 - sebastian