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

move_people=["gouguoqi","beiye_sb","xiudiannao_sb"]
ret=[]
for n in move_people:
if n.endswith("sb"):
pass
else:
ret.append(n)
print (ret) C:\python35\python3.exe D:/pyproject/day14函数/filter函数.py ['gouguoqi']

2、写成函数应该怎么写

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

3、改成功能性的函数

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

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

lambda x:x.endswith("sb")        这个替换了下面这个自定义函数

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

5、filter    取出sb结尾的

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

取出不是sb结尾的

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

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

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

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

name=[
{
"name":"beiye","age":9000,
"name":"maioye","age":8000,
"name":"xiudiannao","age":7000,
"name":"gouguoqi","age":18
}
]
print (list(filter(lambda x:x["age"]<=18,name))) C:\python35\python3.exe D:/pyproject/day14函数/filter函数.py [{'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. 实验一linux 系统简介和实验二基本概念及操作

    作业 zy e

  2. 第二阶段Sprint冲刺会议4

    进展:主要实现调取手机摄像头录制,能够实现“开始”及“暂停”功能.

  3. IEEE 802.11 无限局域网

    (1)无线通讯的两个重要特征 ——Hidden node problem 双方虽然听不到对方的讯号,但同时传送给相同的对象导致了碰撞(这个时候双方都不知道发生了碰撞) ——Exposed node p ...

  4. Anaconda 下libsvm的安装

    方法一. 利用VS生成动态库的安装    详细可参考这篇博文进行操作:https://blog.csdn.net/jeryjeryjery/article/details/72628255 方法二. ...

  5. Find non-overlap jobs with max cost

    Given a set of n jobs with [start time, end time, cost] find a subset so that no 2 jobs overlap and ...

  6. 半夜思考之查漏补缺, Spring 的 Bean 后处理器

    有一篇写的是容器后处理器, 这篇是 Bean 后处理器 , 我对这个 Bean 后处理器的理解就是一个 AOP 编程 . Bean 后处理器 : 是一种特殊的 Bean , 这种 Bean 不对外提供 ...

  7. YARN结构分析与工作流程

    YARN Architecture Link: http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/YARN.html ...

  8. ansible操作(一)

    ansible晋级操作之ad-hoc命令 所谓的ad-hoc命令! 如果我们敲入一些命令去比较快的完成一些事情,而不需要将这些执行的命令特别保存下来, 这样的命令就叫做 ad-hoc 命令.Ansib ...

  9. BZOJ4561 JLOI2016圆的异或并(扫描线+平衡树)

    考虑一条扫描线从左到右扫过这些圆.观察某一时刻直线与这些圆的交点,可以发现构成一个类似括号序列的东西,括号的包含关系与圆的包含关系是相同的.并且当扫描线逐渐移动时,括号间的相对顺序不变.于是考虑用se ...

  10. Codeforces 893F(主席树+dfs序)

    在子树内和距离不超过k是一个二维限制,容易想到主席树,但主席树显然没法查最小值,因为不满足区间可减.kdtree和二维线段树可以干这事,但肯定会T飞.但事实上我们的问题有一个特殊性:对某个点x,查询其 ...