鱼C论坛

 找回密码
 立即注册
查看: 2643|回复: 8

[技术交流] python中filter()函数

[复制链接]
发表于 2017-6-8 22:44:37 | 显示全部楼层 |阅读模式

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

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

x
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数:
>>>def is_odd(x):
                    return x % 2 == 1:
>>>filter(is_odd, [1, 4, 6, 7, 9, 12, 17])
[1, 7, 9, 17]


游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 2鱼币 +3 收起 理由
康小泡 + 1
小甲鱼 + 2 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-9 09:35:52 | 显示全部楼层
>>> help(filter)
Help on class filter in module builtins:

class filter(object)
|  filter(function or None, iterable) --> filter object
|  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-9 09:36:22 | 显示全部楼层
zhanghan1993 发表于 2017-6-9 09:35
>>> help(filter)
Help on class filter in module builtins:

第一个参数是 none 或者 函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-8 22:49:36 | 显示全部楼层
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-9 07:45:22 | 显示全部楼层
其实filter过滤空字符串的话,不需要自己定义函数,直接用None就可以了,像这样:
list(filter(None, [1,2,None,3,4]))
[1, 2, 3, 4]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-9 09:23:40 | 显示全部楼层
jerryxjr1220 发表于 2017-6-9 07:45
其实filter过滤空字符串的话,不需要自己定义函数,直接用None就可以了,像这样:

[1, 2, 3, 4]


能说下原理吗?为什么None不是函数也能使用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-9 20:26:40 | 显示全部楼层
zhanghan1993 发表于 2017-6-9 09:36
第一个参数是 none 或者 函数

666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-2 22:08:26 From FishC Mobile | 显示全部楼层
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-14 19:53:13 | 显示全部楼层
可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 05:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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