Python学习笔记(三)filter()函数

原创 2018年04月17日 15:00:45

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为空时,默认删除空白符(包括'\n', '\r', '\t', ' '),如下:

a = '     123'
a.strip()

结果: '123'

a='\t\t123\r\n'
a.strip()

结果:'123'

任务

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

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


参考

import math

def is_sqr(x):
    return int(math.sqrt(x))**2 == x

print filter(is_sqr, range(1, 101))

【Python】第二周Python基础(下)

本周课程主要讲解Python的面向对象编程, 异常处理、模块、MySQL数据库、Python的数据库支持以及图形用户界面等技术,最后我们使用阶段案例开发了一个《飞机大战》的游戏。
  • 2018年03月16日 11:34

数据分析学习笔记(三)--numpy:内置函数(通用函数、数学与统计方法、集合)

通用函数 通用函数(ufunc)是一种对ndarray中对数据执行元素级运算的函数 # 例子数组 a = np.array([-1,2.1,0.2,2.6,9.1]) # [-1. 2....
  • LOLITA0164
  • LOLITA0164
  • 2018-04-18 19:05:13
  • 667

Python filter()函数的用法

Python函数式编程之filter()filter() 格式: filter(func, seq) 该函数的目的是提取出seq中能使func为true的元素序列。func函数是一个布尔函数,f...
  • SeeTheWorld518
  • SeeTheWorld518
  • 2015-07-20 23:08:22
  • 4472

Python——lambda表达式和filter函数

lambda表达式 又称匿名函数 作用:函数速写 语法:lambda arg : expression冒号前是参数,冒号后是返回值 举例: x=range(10) lambda x:x%2==1 ...
  • CYF18120161685
  • CYF18120161685
  • 2017-03-28 11:08:38
  • 3116

python几个内置函数之-filter,map,reduce

小弟初学,在看到这几个,写在这里先。 ·filter()函数filter()函数包括两个参数,分别是function和list。该函数根据function参数返回的结果是否为真来过滤list参数中的项...
  • shark0001
  • shark0001
  • 2006-11-02 21:57:00
  • 54807

Python filter()函数

廖雪峰Python教程笔记 Python内建的filter()函数用于过滤序列。 和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的...
  • bestallen
  • bestallen
  • 2016-06-09 23:37:19
  • 696

Python中filter筛选函数匿名参数问题

有意思的地方正在于这个判别函数的入参。如果仅根据待筛选值即可确定是否过滤,那么直接指定函数名即可,待筛选值会作为入参传入该函数;如果筛选逻辑需要额外的参数,则使用lambda表达式返回匿名函数,作为判...
  • hfut_wowo
  • hfut_wowo
  • 2017-06-05 09:35:14
  • 701

python中的filter函数

filter函数本质上是一个过滤函数,从一个序列中筛选出你需要的函数。 其参数是一个函数和一个序列,把传入的函数以此作用于每个参数,根据返回值确定是否保留。比如从一个序列中筛选出奇数def is_o...
  • say_c_box
  • say_c_box
  • 2017-05-25 10:57:43
  • 621

python filter design

import numpy as np; import matplotlib.pyplot as plt import cv2; import math; from cmath import sin f...
  • xingyu19871124
  • xingyu19871124
  • 2016-12-21 16:47:34
  • 554

【Python】学习笔记——-5.1.2、高阶函数之filter

Python内建的filter()函数用于过滤序列。 和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返...
  • singit
  • singit
  • 2017-02-13 22:18:09
  • 945
收藏助手
不良信息举报
您举报文章:Python学习笔记(三)filter()函数
举报原因:
原因补充:

(最多只允许输入30个字)