测试积点老人 发表于 2020-9-17 09:59:28

python 中,将lambda函数放进列表,指定访问和循环访问不一样

我在python 中,将lambda函数放进列表,指定访问和循环访问不一样,求教各位大佬这么为什么,我如果想直接访问,该怎么处理。(指定都是输出1, 循环却正常输出)
代码:
cons = []
for i in range(5):
   temp = {'fun': lambda x: x - i}
   cons.append(temp)

   print(i, temp['fun'](5), cons['fun'](5))
   #print(cons)
print('+' * 30)

print(cons['fun'](5))
print(cons['fun'](5))
print(cons['fun'](5))
print(cons['fun'](5))
print(cons['fun'](5))
print('+' * 30)

for i in range(5):
   print(cons['fun'](5))

输出:

0 5 5
1 4 4
2 3 3
3 2 2
4 1 1
++++++++++++++++++++++++++++++
1
1
1
1
1
++++++++++++++++++++++++++++++
5
4
3
2
1

海海豚 发表于 2020-9-18 09:43:36

https://ask.csdn.net/questions/1063329?sort=votes_count看下这个

郭小贱 发表于 2020-9-18 10:17:10

参考1楼的链接即可~{:3_77:}

bellas 发表于 2020-9-18 10:21:56

参考下这个链接https://ask.csdn.net/questions/1063329?sort=votes_count

qqq911 发表于 2020-9-18 10:36:07


https://ask.csdn.net/questions/1063329?sort=votes_count看下这个

jingzizx 发表于 2020-9-18 13:20:29

参考楼上链接吧
页: [1]
查看完整版本: python 中,将lambda函数放进列表,指定访问和循环访问不一样