Python 将lambda函数用作dict值时发生奇怪的覆盖
我试图创建一个包含几个lambda函数的dict。lambda函数是numpy百分位函数。然而,我得到了奇怪的结果,好像所有的lambda函数都包含np.percentile(x,q=100) 印刷生产:Python 将lambda函数用作dict值时发生奇怪的覆盖,python,numpy,lambda,Python,Numpy,Lambda,我试图创建一个包含几个lambda函数的dict。lambda函数是numpy百分位函数。然而,我得到了奇怪的结果,好像所有的lambda函数都包含np.percentile(x,q=100) 印刷生产: {'50_perc': <function <lambda> at 0x2cb7b90>, '70_perc': <function <lambda> at 0x2cb77d0>, '40_perc': <function <lamb
{'50_perc': <function <lambda> at 0x2cb7b90>, '70_perc': <function <lambda> at 0x2cb77d0>, '40_perc': <function <lambda> at 0x2cb75f0>, '10_perc': <function <lambda> at 0x2cb7cf8>, '30_perc': <function <lambda> at 0x2cb7500>, '0_perc': <function <lambda> at 0x2cb7aa0>, '80_perc': <function <lambda> at 0x2cb78c0>, '20_perc': <function <lambda> at 0x2cb7a28>, '100_perc': <function <lambda> at 0x2cb7848>, '90_perc': <function <lambda> at 0x2cb7758>, '60_perc': <function <lambda> at 0x2cb7d70>}
5
5
5
{'50_perc':,'70_perc','40_perc','10_perc','30_perc','0_perc','80_perc','20_perc','100_perc','90_perc','60_perc':}
5.
5.
5.
就像所有lambda函数都被后续函数覆盖一样…找到了解决方案:
一些我不太理解的后期绑定的东西。无论如何
def returnLambda(i):
return lambda x: np.percentile(x,i)
for i in xrange(0,101,10):
d[str(i)+'_perc'] = returnLambda(i)
print(i)
这是一个很好的答案
def returnLambda(i):
return lambda x: np.percentile(x,i)
for i in xrange(0,101,10):
d[str(i)+'_perc'] = returnLambda(i)
print(i)