请教:f = [f for f in (lambda x: x, lambda x: x ** 2) if f(1) == 1]

alearner126 2018-05-16 10:22:18
f = [f for f in (lambda x: x, lambda x: x ** 2) if f(1) == 1]
能不能请高手、前辈指点一下,这句代码具体什么意思?

print(f)#[<function <lambda> at 0x035B2930>, <function <lambda> at 0x035B2858>]
print(f[0](2))#返回:2
print(f[1](2))#返回:4
...全文
2440 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
简明教程 2018-06-12
  • 打赏
  • 举报
回复
这是推导式,Python的一个特性 参考这篇文章, 那拉到底部就是关于推导式的介绍 - Python 推导式
AlbertS 2018-06-05
  • 打赏
  • 举报
回复
得到一个函数列表f,列表内容是两个函数构成,也就是[x, x的平方] f[0](num)表示返回num f[1](num)表示返回num的平方 这两个函数是遍历挑选出来,需要满足参数是1的时候,结果也是1,也就是if f(1) == 1 这一句 正好这两个lambda表达式都满,所以都被选出来作为了列表的内容
Charlie。 2018-06-04
  • 打赏
  • 举报
回复
lambda是匿名函数,你可以理解成 f for f in(x, x^2) if f(1) == 1
qq_42212319 2018-05-18
  • 打赏
  • 举报
回复
f得到一个函数列表,有两个函数,因为这两个函数f(1)=1都成立,如果if条件变成f(1)=2,则最终得到的函数列表为空
欢乐的小猪 2018-05-17
  • 打赏
  • 举报
回复
def f1(x): return x 第2个元素是一个函数 def f2(x): return x**x
欢乐的小猪 2018-05-17
  • 打赏
  • 举报
回复
f是一个列表。列表有两个元素 第一个元素是一个函数
oyljerry 2018-05-16
  • 打赏
  • 举报
回复
生成f是lambda函数的链表。第一个元素就是lambda x: x, 第二个元素是lambda x: x ** 2

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧