您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用lambdas进行Python列表理解

使用lambdas进行Python列表理解

这个问题是经典的“陷阱”,是在lambda函数调用之前,不会查找ilambda函数中引用的内容。当时的值是结束时绑定到的最后一个值,即。i``for-loop``2

如果绑定ilambda函数定义中的认值,则每个函数i将成为局部变量,并且在 定义 而不是调用lambda时,将评估其认值并将其绑定到该函数

因此,当调用lambda时,i现在在 本地范围内 查找,并使用其认值:

In [177]: bases = [lambda x, i=i: x**i for i in range(3)]

In [178]: print([b(5) for b in bases])
[1, 5, 25]

以供参考:

python 2022/1/1 18:27:40 有172人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶