鱼C论坛

 找回密码
 立即注册
查看: 2126|回复: 1

[已解决]对lambda不太理解概念

[复制链接]
发表于 2020-2-5 18:09:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我在测试lambda函数时候:

0. 配合filter

>>> list(filter(lambda x : x , range(10)))
[1, 2, 3, 4, 5, 6, 7, 8, 9]

以上显示很正常

1. 如果没有filter

>>> list(lambda x : not(x) ,range(10))
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    list(lambda x : not(x) ,range(10))
TypeError: list expected at most 1 argument, got 2


这样就很奇怪了,filter不是就判断为真的结果么,为什么不需要判断,直接使用lambda函数,列表就不能导出来了呢?

是不是lambda不是直接导出列表的,只是类似一个return迭代后的数据生成器?
最佳答案
2020-2-5 18:11:45
list() 只接收一个参数,而你传进了两个参数。

你理解错了,lambda 也是一个函数,它不一定非得配合 filter 使用:

  1. >>> f = lambda x: x * x
  2. >>> f(2)    # 2 * 2
  3. 4
  4. >>> f(4)    # 4 * 4
  5. 16
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-5 18:11:45 | 显示全部楼层    本楼为最佳答案   
list() 只接收一个参数,而你传进了两个参数。

你理解错了,lambda 也是一个函数,它不一定非得配合 filter 使用:

  1. >>> f = lambda x: x * x
  2. >>> f(2)    # 2 * 2
  3. 4
  4. >>> f(4)    # 4 * 4
  5. 16
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-4 02:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表