内容来自雪峰的官方网站。

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

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

3、例如:过滤出不及格的学生。

>>> def is_fail(n):
... if n < 60 :
... return True
... else:
... return False
...
>>> list(filter(is_fail, [55, 65, 77, 47, 43, 88, 99]))
[55, 47, 43]

注意到filter()函数返回的是一个Iterator,也就是一个惰性序列,所以要强迫filter()完成计算结果,需要用list()函数获得所有结果并返回list。

4、用fillter求素数

diy版本(按字面意思翻译)

def is_prime(n):
if n <= 1:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
>>> from test import is_prime
>>> is_prime(3)
True
>>> is_prime(4)
False
>>> list(filter(is_prime, [1, 2, 3, 4, 5, 6, 7]))
[2, 3, 5, 7]

5、遇到一个小问题:如果在交互界面漏括号

>>> list(filter(is_prime, list(range(1, 8))))
[2, 3, 5, 7]
>>> list(filter(is_prime, list(range(1, 8)))
...
...

pyDay16的更多相关文章

  1. py-day1-6 python 5个灰魔法 【len,index索引,for循环,切片】

    # 索引,下标,获取字符串中的某一个字符. test = 'MuMingJun' v = test[3] print(v) i # 切片 test = 'MuMingJun' v = test[0:- ...

  2. PYday16&17-设计模式\选课系统习题

    1.设计模式:对程序做整体得规划设计,这样做是为了更好的实现功能,使代码的可扩展性更好有27种常见的设计模式.流行的设计模式参考书:GoF设计模式.大话设计模式设计模式是为了更好的实现模块间的解耦,便 ...

随机推荐

  1. 什么叫做hack

    由于不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到 ...

  2. 《C++ Primer Plus》第10章 对象和类 学习笔记

    面向对象编程强调的是程序如何表示数据.使用 OOP 方法解决编程问题的第一步是根据它与程序之间的接口来描述数据,从而指定如何使用数据.然后,设计一个类来实现该接口.一般来说,私有数据成员存储信息,公有 ...

  3. tomcat日志保存在哪里?

    tomcat目录下的logs文件夹下.有个catalina.20xx-xx-xx.log

  4. Intellij debug模式使用

    1.这里以一个web工程为例,点击图中按钮开始运行web工程. 2.设置断点 3.使用postman发送http请求 4.请求发送之后会自动跳到断点处,并且在断点之前会有数据结果显示 5.按F8 在 ...

  5. exports和module.exports区别

    参考:module.exports与exports的区别.关于exports的总结 exports 和 module.exports 的区别 module.exports是真正的模块接口,而expor ...

  6. CentOS中用户不在 sudoers 文件中。此事将被报告。

    首先切换为root用户 su root; 然后更改etc/sudoers文件的只读为可读可写可执行. sudo chmod 777 /etc/sudoers 输入visudo命令即可编辑文件,找到ro ...

  7. Andorid- 反序列化,采用pull解析 xml 文件

    MainActivity.java 主入口,通过获得 XML文件 ,然后将解析后的文件标签以及文本内容拼接到 StringBuffer中,最后显示在TextView上 package com.exam ...

  8. 微信小程序 --- 获取设备信息

    获取设备信息: wx.getSystemInfo model:手机型号 pixelRatio:设备像素比 windowWidth:窗口宽度 windowHeight:窗口高度 language:语言 ...

  9. jenkins之构建maven项目

    新建java项目 修改列子的pop.xml提交 在git的web界面打一个tag 再次修改代码 再次push 5.38

  10. Code Forces 18D Seller Bob(简单DP)

    D. Seller Bob time limit per test 2 seconds memory limit per test 128 megabytes input standard input ...