Python中的filter()函数的用法

yipeiwu_com7年前Python基础

Python内建的filter()函数用于过滤序列。

和map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

例如,在一个list中,删掉偶数,只保留奇数,可以这么写:

def is_odd(n):
  return n % 2 == 1

filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])
# 结果: [1, 5, 9, 15]

把一个序列中的空字符串删掉,可以这么写:

def not_empty(s):
  return s and s.strip()

filter(not_empty, ['A', '', 'B', None, 'C', ' '])
# 结果: ['A', 'B', 'C']

可见用filter()这个高阶函数,关键在于正确实现一个“筛选”函数。
练习

请尝试用filter()删除1~100的素数。

相关文章

详解django中url路由配置及渲染方式

详解django中url路由配置及渲染方式

今天我们学习如何配置url、如何传参、如何命名、以及渲染的方式,内容大致有以下几个方面。 创建视图函数并访问 创建app django中url规则 捕获参数 路径转...

对python list 遍历删除的正确方法详解

在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下: num_list = [1, 2, 3, 4, 5] print(num_list) for i in ra...

Python实现对比不同字体中的同一字符的显示效果

Python实现对比不同字体中的同一字符的显示效果

有人在 openSUSE 中文论坛询问他的输入法打出的「妩媚」的「妩」字为什么显示成「女」+「元」。怀疑是字体的问题,于是空闲时用好友写的 python-fontconfig 配合 Pi...

python绘制无向图度分布曲线示例

python绘制无向图度分布曲线示例

如下所示: #Copyright (c)2017, 东北大学软件学院学生 # All rightsreserved #文件名称:a.py # 作 者:孔云 #问题描述:统计图中的每...

Python实现FTP弱口令扫描器的方法示例

Python实现FTP弱口令扫描器的方法示例

FTP服务器 FTP服务器是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。FTP是File Transfer Protocol(文件传输协议)的缩写。顾名思义,...