Python中的map函数,lambda表达式,filter函数的用法
map函数
map()函数语法: map(function,iterable)
- function 是函数
- iterable 一个或者多个序列
接受一个函数和一个list,并通过把函数依次作用在list每个元素上,得到一个新的list并返回
处理序列中的每个元素,得到的结果是一个“列表”,该“列表”元素个数及位置与原来一样
# 打印列表中所有数字的平方形式 # 用for循环形式做: # #[1,2,3,4,5,6] # 1. 先写出一个列表 # yi=[1,2,3,4,5,6] # 2. 给原始列表赋值yi # res=[] # 3. 给假设的平方列表赋值,便于打印 # for i in yi: # 此处i表示列表中的数值 # res.append(i**2) # print(res) # # # 用map函数的方式做 # yi=[1,2,3,4,6] # def map_test(shuzi): # num_01映射 shuzi 是接受列表的形式,是参数 # ko=[] # for i in yi: # ko.append(i**2) # return ko #完成某一个功能(该例子为列表的平方)逻辑封装到函数里面 # ret=map_test(yi) # 将yi传进num_01里面 ,赋值给ret # print(ret)
lambda函数
- 用lambda声明一个匿名函数,是指没有声明函数名称的函数
- lambda是为了减少单行函数的定义而存在的
- lambda函数可以接受任意数量的参数,但函数只能包含一个表达式
lambda x,y:x*y
# x,y 是参数,x*y是lambda是函数,是表达式,用来计算后返回结果,将参数传入
- 将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数
- 将lambda函数赋值给其他函数,从而将其他函数用该lambda函数替换
- 将lambda函数作为其他函数的返回值,返回给调用者
- 将lambda函数作为参数传递给其他函数
movie_people=['zhangsan','lisi','wangwu','sb01','sb_02','03_sb'] def sb_show(n): return n.endswith('sb') #直接可以写成lambda形式 ------> lambda n:n. def fii_test(func,xx): ret=[] for i in movie_people: if not func(i): ret.append(i) return ret res=fii_test(lambda n:n.endswith('sb'),movie_people) print(res)
filter函数
filter()函数语法: filter(函数,序列)
- 函数和序列均为参数,序列的每个元素作为参数传递给函数进行判断,然后返回True或者False,最后将返回True的元素放到新列表/迭代器中
- 过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表
- 遍历序列中的每个元素,判断每个元素得到布尔值,如果是True则保留
从看电影的人当中过滤掉所有sb,不分前后 movie_people=['zhangsan','lisi','wangwu','sb01','sb_02','03_sb'] def sb_show(n): return n.endswith('sb') def fii_test(func,xx): ret=[] for i in movie_people: if not func(i): ret.append(i) return ret res=fii_test(sb_show,movie_people) print(res) 使用lambda进行匿名函数处理: movie_people=['zhangsan','lisi','wangwu','sb01','sb_02','03_sb'] def sb_show(n): return n.endswith('sb') #直接可以写成lambda形式 # ------> lambda n:n. def fii_test(func,xx): ret=[] for i in movie_people: if not func(i): ret.append(i) return ret res=fii_test(lambda n:n.endswith('sb'),movie_people) print(res) filter函数处理: movie_people=['zhangsan','lisi','wangwu','sb01','sb_02','03_sb'] res=filter(lambda n:n.endswith('sb'),movie_people) ----> lambda n:n.endswith('sb') 函数是参数;movie_people是可迭代对象,对可迭代对象依次进行for循环遍历,bool值等于True,值保留 print(res) print(list(res))
reduce函数
处理一个序列,然后把序列进行合并操作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】