python中filter()函数

摘要:
filter()函数接收函数f和列表,并返回True或False。filter()根据判断结果自动过滤掉不合格的元素,并返回由合格元素组成的新列表。defis_Odd(x):过滤器(is_Odd,delete None或空字符串:defis_not_empty(s):returnsandlen(s.strip())>0>无,'END'])结果:

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()过滤掉偶数:

>>>filter(is_odd, [1, 4, 6, 7, 9, 12, 17])

结果:

[1, 7, 9, 17]

利用filter(),可以完成很多有用的功能,例如,删除 None 或者空字符串:

def is_not_empty(s):
    return s and len(s.strip()) > 0
>>>filter(is_not_empty, ['test', None, '', 'str', '  ', 'END'])

结果:

['test', 'str', 'END']

注意: s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。

当rm为空时,默认删除空白符(包括' ', ' ', ' ', ' '),如下:

>>> a = ' 123'
>>> a.strip()
'123'

>>> a = ' 123 '
>>> a.strip()
'123'

练习:

请利用filter()过滤出1~100中平方根是整数的数,即结果应该是:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

方法:

import math
def is_sqr(x):
    return math.sqrt(x) % 1 == 0
print filter(is_sqr, range(1, 101))

结果:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

免责声明:文章转载自《python中filter()函数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇sql union和union all的用法及效率ECharts xAxis.type='time'时间轴时卡顿问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js中的同步与异步

同步:提交后等待服务器的响应,接收服务器返回的数据后再执行下面的代码    异步:与上面相反,提交后继续执行下面的代码,而在后台继续监听,服务器响应后有程序做相应处理,异步的操作好处是不必等待服务器而可以继续在客户端做其它事情。 可以简单的理解认为同步是单线程的异步是多线程的           在使用异步请求时,有时需要将异步请求的结果返回给另一个js函...

vmware已经全面支持open-vm-tools

以后不用再为vmware vm单独安装vmware-tools了,vmware已经全面支持open-vm-tools, 今天突然发现安装vmware-tools时出现deprecated提示,原来vmware已经推荐用open-vm-tools代替vmware-tools了, 赞一个. 原文: http://kb.vmware.com/selfservic...

Java基础知识强化之IO流笔记34:OutputStreamWriter(Writer字符流的子类)5种write数据方式

1. OutputStreamWriter (转换流) OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。 同时OutputStreamWriter 也是 字符流Writer(抽象类)一个具体实现子类。 所以我们这个OutputStreamWriter (转换流)也是字符流。 2. ...

Python与微信——itchat包

目录 itchat itchat 一安装itchat pip install itchat pip install echarts-python 二登陆并向文件传输助手发消息 ``` import itchat 登录 itchat.login() 发送消息,filehelper是文件传输助手 itchat.send(u'hello', 'fileh...

前端js实现打印excel表格

产品原型: 图片.png 功能需求:点击导出考勤表格按钮,会自动下载成Excel格式 图片.png 图片.png jsp页面代码: <div class="tools"> <button type="button" onclick="method5('dataTable')">导出考勤表</but...

cocos2dx游戏资源加密之XXTEA

在手机游戏当中,游戏的资源加密保护是一件很重要的事情。 我花了两天的时间整理了自己在游戏当中的资源加密问题,实现了跨平台的资源流加密,这个都是巨人的肩膀之上的。 大概的思路是这样的,游戏资源通过XXTEA加密方法对流的加密方式,有自己的密钥和标识,通过标识可知是否有加密,密钥是自己程序当中的。除非有密钥,否则很难通过解出正确的文件。经过加密后,加密文件也就...