1、总共有3个人看电影,有2个人看电影经常说话,我们把他们两个过滤出去

  1. move_people=["gouguoqi","beiye_sb","xiudiannao_sb"]
  2. ret=[]
  3. for n in move_people:
  4. if n.endswith("sb"):
  5. pass
  6. else:
  7. ret.append(n)
  8. print (ret)
  9.  
  10. C:\python35\python3.exe D:/pyproject/day14函数/filter函数.py
  11.  
  12. ['gouguoqi']

2、写成函数应该怎么写

  1. move_people=["gouguoqi","beiye_sb","xiudiannao_sb"]#1.定义3个看电影的人
  2. def del_sb(people):#2.定义一个函数,到20行,放入内存中,等待被调用
  3. ret = []#3.1定义一个空列表
  4. for n in people:#3.2循环这3个看电影的人
  5. if n.endswith("sb"):#判断如果是sb结尾的就什么都不干
  6. pass
  7. else:#如果结尾不是sb的就把名字追加到空列表ret里面
  8. ret.append(n)
  9. return ret#最后函数返回值是ret 也就是一个列表
  10. print(del_sb(move_people))#3.调用del_sb这个函数,把列表作为参数传给people
  11.  
  12. C:\python35\python3.exe D:/pyproject/day14函数/filter函数.py
  13.  
  14. ['gouguoqi']

3、改成功能性的函数

  1. move_people=["gouguoqi","beiye_sb","xiudiannao_sb"]#1.定义3个看电影的人
  2. def del_end_sb(x):
  3. return x.endswith("sb")
  4. def del_sb(func,people):#2.定义一个函数,到20行,放入内存中,等待被调用
  5. ret = []#3.1定义一个空列表
  6. for n in people:#3.2循环这3个看电影的人
  7. if func(n):#判断如果是sb结尾的就什么都不干
  8. pass
  9. else:#如果结尾不是sb的就把名字追加到空列表ret里面
  10. ret.append(n)
  11. return ret#最后函数返回值是ret 也就是一个列表
  12. print(del_sb(del_end_sb,move_people))#3.调用del_sb这个函数,把列表作为参数传给people
  13.  
  14. C:\python35\python3.exe D:/pyproject/day14函数/filter函数.py
  15.  
  16. ['gouguoqi']

4、终极版本就是下面这样了

  1. lambda x:x.endswith("sb") 这个替换了下面这个自定义函数
  2.  
  3. def del_end_sb(x):
  4. return x.endswith("sb")
  5.  
  6. move_people=["gouguoqi","beiye_sb","xiudiannao_sb"]#1.定义3个看电影的人
  7. def del_sb(func,people):#2.定义一个函数,到20行,放入内存中,等待被调用
  8. ret = []#3.1定义一个空列表
  9. for n in people:#3.2循环这3个看电影的人
  10. if func(n):#判断如果是sb结尾的就什么都不干
  11. pass
  12. else:#如果结尾不是sb的就把名字追加到空列表ret里面
  13. ret.append(n)
  14. return ret#最后函数返回值是ret 也就是一个列表
  15. print(del_sb(lambda x:x.endswith("sb"),move_people))
  16.  
  17. C:\python35\python3.exe D:/pyproject/day14函数/filter函数.py
  18.  
  19. ['gouguoqi']

5、filter    取出sb结尾的

  1. move_people=["gouguoqi","beiye_sb","xiudiannao_sb"]
  2. print (list(filter(lambda x:x.endswith("sb"),move_people)))
  3.  
  4. C:\python35\python3.exe D:/pyproject/day14函数/filter函数.py
  5.  
  6. ['beiye_sb', 'xiudiannao_sb']

取出不是sb结尾的

  1. move_people=["gouguoqi","beiye_sb","xiudiannao_sb"]
  2. print (list(filter(lambda x:not x.endswith("sb"),move_people)))
  3.  
  4. C:\python35\python3.exe D:/pyproject/day14函数/filter函数.py
  5.  
  6. ['gouguoqi']

filter的语法跟map的语法是一样的,2个参数

filter(一个处理方法,可迭代对象)

6、filter遍历序列中的每个元素,判断每个元素得到布尔值,如果True则留下来

  1. name=[
  2. {
  3. "name":"beiye","age":9000,
  4. "name":"maioye","age":8000,
  5. "name":"xiudiannao","age":7000,
  6. "name":"gouguoqi","age":18
  7. }
  8. ]
  9. print (list(filter(lambda x:x["age"]<=18,name)))
  10.  
  11. C:\python35\python3.exe D:/pyproject/day14函数/filter函数.py
  12.  
  13. [{'name': 'gouguoqi', 'age': 18}]

那name这个列表里面的每个元素以for循环的方式作为参数传递给x,冒号后面是处理方法

python的filter函数的使用方法详解以及使用案例,是否以什么结尾,是否大于什么(判断是True,则留下来)的更多相关文章

  1. python的reduce函数的使用方法详解以及使用案例,相加,相乘(处理一个序列,然后把序列进程合并操作)

    1.求列表的数字相加之和,还是之前的习惯,写for循环来实现 num_1=[1,2,3,4,5,6,7,8,9] a=0 for n in num_1: #a=a+n a+=n print (a) C ...

  2. python的map函数的使用方法详解以及使用案例(处理每个元素的自增、自减、平方等)

    1.用我们之前学过的求一下平方(只有一个列表) #求平方 num=[1,5,6,2,7,8] a=[] for n in num: a.append(n**2) print (a) C:\python ...

  3. python的内置模块random随机模块方法详解以及使用案例(五位数随机验证码的实现)

    1.random(self): Get the next random number in the range [0.0, 1.0) 取0到1直接的随机浮点数 import random print( ...

  4. Python调用C/C++动态链接库的方法详解

    Python调用C/C++动态链接库的方法详解 投稿:shichen2014 这篇文章主要介绍了Python调用C/C++动态链接库的方法,需要的朋友可以参考下 本文以实例讲解了Python调用C/C ...

  5. Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)

    Python 在子类中调用父类方法详解(单继承.多层继承.多重继承)   by:授客 QQ:1033553122   测试环境: win7 64位 Python版本:Python 3.3.5 代码实践 ...

  6. python中验证码连通域分割的方法详解

    python中验证码连通域分割的方法详解 这篇文章主要给大家介绍了关于python中验证码连通域分割的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需 ...

  7. python的dict()字典数据类型的方法详解以及案例使用

    一.之前的回顾 # int  数字 # str 字符串 # list 列表 # tuple 元组 # dict 字典 字典中最重要的方法 keys() values() items() get upd ...

  8. 【Python】Linux crontab定时任务配置方法(详解)

    CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使用它在 ...

  9. Python中防止sql注入的方法详解

    SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库.下面这篇文章主要给大家介绍了关于Python中 ...

随机推荐

  1. 欢迎来怼--第三十六次Scrum会议

    一.小组信息 队名:欢迎来怼 小组成员 队长:田继平 成员:李圆圆,葛美义,王伟东,姜珊,邵朔,阚博文 小组照片 二.开会信息 时间:2017/12/1 11:35~11:55,总计20min. 地点 ...

  2. eclipse 中使用git

    1.安装egit插件,在新版的eclipse中已经集成了这个插件,省了不少时间, 旧版的eclipse可以在help->install new software中点击add,写入名称,网址具体如 ...

  3. Java jdbc链接 mySQL 写的crud

    1.JDBC(Java Data Base Connectivity java数据库连接)概念: 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编 ...

  4. Android笔记-3-EditText的属性介绍

    [Android 基础]EditText的属性介绍 EditText继承TextView,所以EditText具有TextView的属性特点,下面主要介绍一些EditText的特有的输入法的属性特点 ...

  5. DPDK L2fwd 源码阅读

    代码部分 /* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2010-2016 Intel Corporation */ #include ...

  6. Good Time 冲刺 五

    一.今日完成任务情况及遇到的问题 第五天 日期:2018.6.18 王怡镔:今天继续在学习中完善编写页面,对之前的页面进行部分改进. 于鑫宇:修改完善布局,复习. 胡雅馨:今天继续改进页面,努力解决时 ...

  7. 26_多线程_第26天(Thread、线程创建、线程池)_讲义

    今日内容介绍 1.多线程 2.线程池 01进程概念 A:进程概念 a:进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行, 即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能 ...

  8. Scrum Meeting Beta - 8

    Scrum Meeting Beta - 8 NewTeam 2017/12/7 地点:新主楼F座二楼 任务反馈 团队成员 完成任务 计划任务 安万贺 完成了博文详情的存储Issue #150Pull ...

  9. 英文词频统计的java实现方法

    需求概要 1.读取文件,文件内包可含英文字符,及常见标点,空格级换行符. 2.统计英文单词在本文件的出现次数 3.将统计结果排序 4.显示排序结果 分析 1.读取文件可使用BufferedReader ...

  10. 优先级:P0

    优先级:P0 Priority https://www.zhihu.com/question/23353333?sort=created 一个团队, 每周需求pk的例会,每个产品经理都要给自己提出的需 ...