鱼C论坛

 找回密码
 立即注册
查看: 701|回复: 7

[已解决]下面两个匿名函数能不能转换成普通函数,并打印出结果

[复制链接]
发表于 2020-4-27 17:09:26 | 显示全部楼层 |阅读模式

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

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

x
list(filter(lambda x:x if x%3==0 else None,range(100)))
list(filter(lambda x:x%3==0,range(100)))
最佳答案
2020-4-27 17:11:38
def func(x):
    if x%3==0:
        return x
    return None

print(list(filter(func,range(100))))
def func(x):
    return x%3==0

print(list(filter(func,range(100))))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-27 17:10:38 | 显示全部楼层
你是指
lambda x:x if x%3==0 else None
lambda x:x%3==0
这两个匿名函数转化为普通函数??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 17:11:15 | 显示全部楼层
很简单啊
def func1(x):
    return x % 3 == 0

def func2(x):
    if x % 3 == 0:
        return x
    else:
        return None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 17:11:38 | 显示全部楼层    本楼为最佳答案   
def func(x):
    if x%3==0:
        return x
    return None

print(list(filter(func,range(100))))
def func(x):
    return x%3==0

print(list(filter(func,range(100))))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-27 17:16:57 | 显示全部楼层

麻烦问一下,为什么第一个结果没有0,第二个结果有0吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-27 17:18:30 | 显示全部楼层

是不是因为第一个x=0时return 0,所以不输出,但是第二个return的是1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 17:19:05 | 显示全部楼层
努力去见你 发表于 2020-4-27 17:16
麻烦问一下,为什么第一个结果没有0,第二个结果有0吗

第一个函数在传入 0 的时候 ,因为 0%3==0 ,所以会返回 0,但是 0 是假值
第二个函数 则会返回 True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-27 17:21:49 | 显示全部楼层

这个我知道,最后打印没打印明白,现在知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 22:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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