列表元素含有匿名函数的问题

sigtem CSDN会员 sigtem 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
cons=[]
for j in range(0,3):
cons.append({'fun': lambda x: x[j]})
用这个循环语句生成了一个列表,其元素是字典,字典里有一个匿名函数。
现在调用定义好的的cons中的匿名函数
t=[0,1,2,3]
cons[0]['fun'](t)
cons[1]['fun'](t)
cons[2]['fun'](t)
得到的结果都是2,而不是0,1,2,因为此时j仍然被赋予2的值。我必须每次调用匿名函数都事先修改j的值才能调用对应值,很麻烦。
我希望达到的效果是cons=[{'fun':lambda x: x[0]},{'fun':lambda x: x[1]},{'fun':lambda x: x[2]}],这样就固定了。请问有什么办法?谢谢。
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
sigtem CSDN会员
脚本语言 37,738 成员 34,208 内容