3
我想弄清楚在Python中正确使用地图的方式,以便我可以通过Pool.map多线程我的程序。基本上我遇到了一些问题,试图了解Python的功能如何工作。我有:在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。我用sympy使用了lambdify,但这都是为了我的功能体验。谢谢!
这使得现在更有意义。谢谢!我已经取出印刷品以便[None,None]不再显示,但是如何改变地图调用来正常进行这种乘法运算而不是乘以matA的每个元素? – faceforest
你必须在另一个迭代中包装'matA'。一个元素元组,例如:'map((lambda foo:maptest(foo,matB)),(matA,))'或者list [matA]'。 – sebastian
@sebastian啊!所以,现在如果我换了matA它的作品!但现在如果我改变了,说matA为[[0,1],[1,0]],我得到了[[0,1],[1,0]]的解,它应该是[[0, 0],[0,0]。现在发生了什么? – faceforest