filter 过滤序列
2024-10-18 07:33:37
class filter(object): """ filter(function or None, iterable) --> filter object Return an iterator yielding those items of iterable for which function(item) is true. If function is None, return the items that are true. """
filter()
函数用于过滤序列。
filter(返回布尔值的函数,可迭代对象)
和map()
类似,filter()
也接收一个函数和一个序列。和map()
不同的时,filter()
把传入的函数依次作用于每个元素,然后根据返回值是True
还是False
决定保留还是丢弃该元素。
例如,在一个list中,删掉偶数,只保留奇数,可以这么写:
def is_odd(n): return n % 2 == 1 s = filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]) print(list(s)) # 结果: [1, 5, 9, 15]
巧妙运用lambda表达式写成这样才好看:
s = filter(lambda n: n % 2 == 1, [1, 2, 4, 5, 6, 9, 10, 15]) print(list(s)) # 结果: [1, 5, 9, 15]
把一个序列中的空字符串删掉,可以这么写:
def not_empty(s): return s and s.strip() s = filter(not_empty, ['A', '', 'B', None, 'C', ' ']) print(list(s)) # 结果: ['A', 'B', 'C']
用lambda表达式写成这样:
s = filter(lambda n: n and n.strip(), ['A', '', 'B', None, 'C', ' ']) print(list(s)) # 结果: ['A', 'B', 'C']
最新文章
- 一年之计在于春,2015开篇:PDF.NET SOD Ver 5.1完全开源
- JAVA-集合作业-已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。采用List集合和随机数
- [Tools] Eclipse更改类注释自动生成模板
- dpkg命令的用法
- if else 语句练习
- 深度学习研究理解5:Visualizing and Understanding Convolutional Networks(转)
- 开源项目:网页实时通信WebRTC
- cocos2dx 2.x版本:简化提炼tolua++绑定自定义类到lua中使用
- (转) MFC的入口点与消息循环,消息映射
- 無心插柳的Linux學習者代言人——蔡德明
- javascript 笔试题之删除数组重复元素
- 将Oracle JDBC驱动库安装到本地仓库
- Wikioi 1294 全排列
- 仿vue实现简易版mvvm双向绑定
- mac下怎么删除隐藏文件比如 .Trashes文件
- BZOJ_2303_[Apio2011]方格染色 _并查集
- omitting directory `folder/'
- 周强、张季跃,马凯军《面向对象与程序设计Java》第十四周学习总结
- day-12函数对象
- selenium+python之 辨识alert、window以及操作
热门文章
- IOS开发之不同版本适配问题2(#ifdef __IPHONE_7_0)(转载)
- gcc g++ 参数介绍
- PHP学习笔记03——函数
- CocoStudio UI 编辑器的使用
- Mac下配置环境变量
- 【英语】Bingo口语笔记(5) - 英式和美式英语的发音区别
- MySQL内存表-临时表
- 【转】Eclipse+PyDev 安装和配置
- std::sort引发的core
- [转]linux之more命令