python 内置函数filter


Posted in Python onJune 01, 2017

python 内置函数filter

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(func,iterator)

    func:自定义或匿名函数中所得值是布尔值,true将保留函数所取到的值,false则取反。
    iterator:可迭代对象。

例:

     过滤列表['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']
     只要含有text字符串及将其取出 or 取反。

s.rfind'text'+1

     Python3中 rfind() 返回字符串最后一次出现的位置,如果没有匹配项则返回-1。
     数字中0是false,0以上的整数都是true,所以s.rfind'text'后会有+1,没找到字符及-1+1=0.

# Filter

li = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']

# 默认保留函数所取到的值
print(list(filter(lambda s: s.rfind('text') + 1, li)))
# 取反,下三个例子是一样的
print(list(filter(lambda s: not s.rfind('text') + 1, li)))

# Noe 自定义函数

l1 = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']


def distinguish(l):
 nl = []
 for s in l:
  if s.rfind("text") + 1:
   nl.append(s)
 return nl


print(distinguish(l1))

# Two 自定义高阶函数

l2 = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']


def f(s):
 return s.rfind('text') + 1


def distinguish(func, array):
 nl = []
 for s in array:
  if func(s):
   nl.append(s)
 return nl


print(distinguish(f, l2))

# Three 匿名函数

l3 = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']


def distinguish(func, array):
 nl = []
 for s in array:
  if func(s):
   nl.append(s)
 return nl

print(distinguish(lambda s: s.rfind('text') + 1, l3))

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
Python算法之栈(stack)的实现
Aug 18 Python
Linux下使用python调用top命令获得CPU利用率
Mar 10 Python
Python求导数的方法
May 09 Python
python中字符串前面加r的作用
Jun 04 Python
一步步解析Python斗牛游戏的概率
Feb 12 Python
Python内置函数——__import__ 的使用方法
Nov 24 Python
python编程通过蒙特卡洛法计算定积分详解
Dec 13 Python
python调用OpenCV实现人脸识别功能
May 25 Python
python实现一个简单的ping工具方法
Jan 31 Python
python实现WebSocket服务端过程解析
Oct 18 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
python pymysql链接数据库查询结果转为Dataframe实例
Jun 05 Python
python读取二进制mnist实例详解
May 31 #Python
Python算术运算符实例详解
May 31 #Python
Python简单的制作图片验证码实例
May 31 #Python
详解python的webrtc库实现语音端点检测
May 31 #Python
python实现决策树C4.5算法详解(在ID3基础上改进)
May 31 #Python
基于ID3决策树算法的实现(Python版)
May 31 #Python
Python基础知识_浅谈用户交互
May 31 #Python
You might like
建立动态的WML站点(一)
2006/10/09 PHP
openPNE常用方法分享
2011/11/29 PHP
php微信公众平台开发类实例
2015/04/01 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
PHP守护进程实例
2015/03/06 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
JavaScript实现点击按钮就复制当前网址
2015/12/14 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
用js实现放大镜效果
2020/10/28 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
python的dict,set,list,tuple应用详解
2014/07/24 Python
在Python中使用第三方模块的教程
2015/04/27 Python
Python过滤列表用法实例分析
2016/04/29 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
解析Python的缩进规则的使用
2019/01/16 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
.net开发工程师面试题
2014/02/25 面试题
房产销售经理职责
2013/12/20 职场文书
冬季施工防火方案
2014/05/17 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书