python葵花宝典第15式-匿名函数、内置函数、映射函数
python葵花宝典第15式-匿名函数、内置函数、映射函数
15.1 lambda函数(匿名函数)
匿名函数并不是没有函数名字
注意:
(1)函数的参数可以有多个,多个参数之间用逗号隔开
(2)匿名函数不管有多复杂,只能写一行,且逻辑结束后直接返回数据
(3)返回值和正常的函数一样,可以使任意数据类型
(4)Lambda表示匿名函数,不需要def进行生命,一句话就可以生声明一个函数
语法:lambda 参数:返回值
第一招
#匿名函数
a = lambda n : n*n
ret = a(9)
print(ret)
相当于:
#普通函数
def func(n):return n * nret = func(9)
print(ret)
第二招(面试题)
t = lambda x,y : (x,y)
print(t(2,2))
15.2 sorted函数
(1)语法: sorted(list_name,key=function_name,reserve=False)
(2)key:排序方案,sorted函数内部会把可迭代对象中的每一个元素拿出来交给后面的key,后面的key计算出一个数字,作为当前这个元素的权重
(3)reserve:Ture反向排序,False正向排序
第三招
lst = ["王俊凯","易烊千玺","文章","赵四","李晓凡"]def func(s):return len(s)print(sorted(lst,key=func))
第四招
lst = [{"name":"李晓凡","age":23},{"name":"崔月红","age":24},{"name":"柳博文","age":18},{"name":"堡垒","age":25}]print(sorted(lst,key=lambda el:el["age"],reverse=True))
15.3 filter筛选器
语法:filter(function,Iterable)
function:用来筛选的函数。在filter中会自动的将iterable中的元素传递给function.然后根据function返回的True或者False来判断是否保存此项数据
Iterable:可迭代对象
第五招
#filter筛选器
lst = ["文波","彭珍","鲍烈","李晓凡","崔月红","陈凤"]
#筛选
f = filter(lambda el : el[0] != "李",lst)
#将lst中的每一项传递给fun,所有返回Ture的都会保留,所有返回False都会过滤掉
print("__iter__" in dir(f))#判断filter是否可迭代
for e in f:print(e)
相当于:
lst = ["文波","彭珍","鲍烈","李晓凡","崔月红","陈凤"]
def fun(el):if el[0] == "李": return False#舍弃的else:return True#保留的
f = filter(fun,lst)#将lst中的每一项传递给fun,所有返回Ture的都会保留,所有返回False都会过滤掉
print("__iter__" in dir(f))#判断filter是否可迭代
for e in f:print(e)
结果:
True
文波
彭珍
鲍烈
崔月红
陈凤
第七招
lst = [{"name":"文波","age":26},{"name":"彭珍","age":26},{"name":"赵舜","age":24},{"name":"陈凤","age":24},{"name":"晓凡","age":23}
]f = filter(lambda el: el["age"] > 24,lst)
print(list(f))
15.4 map()映射函数
语法:map(function,iterable)可以对可迭代对象中的每一个元素进行映射,分别取执行function
第八招
#map映射函数
lst = [1,4,7,2,5,8]
def fun(el):return el**2
m = map(fun,lst)#把后面的可迭代对象中的每一个元素传递给function,结果就是function的返回值
print("__iter__" in lst)
print(list(m))
相当于:
lst = [1,4,7,2,5,8]lst2 = []
#计算每个数字的平方
for el in lst:lst2.append(el**2)print(lst2)
结果:
False
[1, 16, 49, 4, 25, 64]
第九招(计算两个列表中相同位置的数据的和
)
lst1 = [1,2,3,4,5]
lst2 = [2,4,6,8,10]
print(list(map(lambda x,y: x+y, lst1, lst2)))
15.5 递归
第十招
#递归函数,自己调用自己
def fun():print("文波很帅")fun()fun()
注意:递归深度,你可以自己调用自己的次数,官方文档最大深度为1000,在这之前会进行报错
第十一招(进行文件目录的遍历)
#遍历文件夹,打印所有的文件和文件夹
import os
def fun(filepath,n):#1、打开文件夹files = os.listdir(filepath)#查看当前目录中的文件#2、拿到每一个文件名for file in files:#获取文件名#3、获取到文件的路径file_p = os.path.join(filepath,file)#4、判断是否是文件夹if os.path.isdir(file_p):#5、如果是文件夹,继续调用程序print("\t"*n,file)fun(file_p,n+1)else:#5、如果不是文件夹,直接打印文件print("\t"*n,file)fun("f:/python学习视频",0)
15.6 二分查找
(1)使用二分法可以提高效率
(2)只可用于有序列表
第十二招(普通循环)
lst = [11, 12, 22, 32, 33, 38, 45, 67, 83, 89, 90, 99]n = 89
left = 0
right = len(lst) - 1while left <= right:#边界,当右边小于左边时退出循环mid = (left + right)//2#必须是整除if lst[mid] > n:right = mid - 1if lst[mid] < n:left = mid + 1if lst[mid] == n:print("找到了这个数")break
else:print("对不起,没有找到这个数")
第十三招(递归循环)
递归形式的二分法
lst = [11, 12, 22, 32, 33, 38, 45, 67, 83, 89, 90, 99]def fun(n,left,right):if left <= right:mid = (left + right)//2if n > lst[mid]:left = mid + 1return fun(n,left,right)elif n < lst[mid]:right = mid - 1return fun(n,left,right)elif n == lst[mid]:print("找到这个数了")return midelse:print("没有找到这个数")return -1#一般的索引为+,什么都不返回则是None#寻找33,从左至右进行查找
func = fun(33,0,len(lst)-1)
print(func)
结果:
找到这个数了
4
本期学习到此结束,欢迎关注批评指正!
python葵花宝典第15式-匿名函数、内置函数、映射函数相关推荐
- Python基础11-函数式编程与内置函数
目录 函数即变量 lambda关键字定义匿名函数 高阶函数 内置函数map 内置函数filter 内置函数reduce 内置函数看文档 函数即变量 书接上回,Python里面,函数就是变量,可以被当成 ...
- python - - 函数 - - 内置函数和匿名函数
目录 内置函数 匿名函数 本章小结 相关练习题 1,内置函数 python里的内置函数.截止到python版本3.6.2,现在python一共为我们提供了68个内置函数. Built-inFuncti ...
- Python全栈之路系列----之-----内置函数和匿名函数lamdba
引子 什么是内置函数? 内置函数就是python 提供给我们直接拿来就可以用的函数 内置函数--内置命名空间 只管调用 不管实现 总共68个 def func(): == #这是自己定义的函数 ...
- Python学习8 函数 匿名函数 内置函数
转换相关的方法-eval 转换相关的方法-json 函数基本语法大纲 函数概念 示例: 题目: 函数的参数 def f(x,y=1,*z,**abc):print(x,y,z,abc,sep=&quo ...
- Python中lambda详解(包括内置函数map、reduce、filter、sorted、max)
文章目录 一.lambda是什么? 1.lambda语法 2.语法详解 二.lambda的使用 1.定义 2.调用 3.替换 4.作返回值 三.lambda作参数 1.map函数 2.reduce函数 ...
- 零基础学Python(第二十二章 常用内置函数)
本套学习内容共计[22]个章节,每个章节都会有对应的从0-1的学习过程详细讲解,希望可以给更多的人提供帮助. 开发环境:[Win10] 开发工具:[Visual Studio 2019] 本章内容为: ...
- [转载] Python列表排序 list.sort方法和内置函数sorted
参考链接: Python中的函数 Python列表排序 list.sort方法和内置函数sorted 很多时候我们获取到一个列表后,这个列表并不满足我们的需求,我们需要的是一个有特殊顺序的列表. 这时 ...
- Python列表排序 list.sort方法和内置函数sorted
Python列表排序 list.sort方法和内置函数sorted 很多时候我们获取到一个列表后,这个列表并不满足我们的需求,我们需要的是一个有特殊顺序的列表. 这时候就可以使用list.sort方法 ...
- 学习日记0802函数递归,三元表达式,列表生成式,字典生成式,匿名函数+内置函数...
1 函数的递归 函数的递归调用时函数嵌套调用的一种特殊形式,在调用的过程中又直接或者间接的调用了该函数 函数的递归调用必须有两个明确的阶段: 1 回溯:函数一次次的调用下去每一次调用,问题的规模都应该 ...
最新文章
- 安装版 修改mysql最大连接数_修改MySQL最大连接数
- 元气森林唐彬森:十万块就能爆发团队创造力
- java lambdamart库,LambdaMART 之 lambda(示例代码)
- MySQL数据库-笔记05【查询练习题*25道(附解析)】
- C#将对象序列化成JSON字符串
- Spring Boot Shiro权限管理--自定义 FormAuthenticationFilter验证码整合
- 1流明等于多少lux_要想投影仪画质清晰,投影仪流明和对比度不得不看
- WinRAR命令行参数
- 关于GPS数据跳动问题的解决方案
- 在Python中如何优雅地处理PDF文件
- setup factory 会话变量
- 蚌埠学院计算机基础,蚌埠学院电子教务登录
- ul阻燃标准有几个等级_UL阻燃等级
- 高速缓存(cache)存储器
- android恶意积分墙代码,传统积分墙的忧虑:微信积分墙刷榜优化分析
- 文献调研(九):基于rough set理论和深度学习算法的建筑能耗预测模型
- 莎士比亚统计最高的词频数 java,spark,rdd
- Oracle -PL/SQL Developer错误解决方案(ORA-02291)
- BFC(Block Formatting Context) 及其如何工作
- 氢化溶血卵磷脂行业研究分析
热门文章
- 数据库的应用(税务)
- 电脑强制关机以后计算机无法启动,如何解决win10强制关机后电脑启动不了的问题...
- 360安全浏览器怎么打开html,360安全浏览器如何使用无痕模式
- 【2017.12.09】安卓巴士全球开发者论坛广州站 ——全面开启安卓洪荒之力
- android 论坛末班,大幅提高Android开发效率之TemplateBuilder
- 整理的关于面试的一些资料-20210601
- 花了两天做了一个随机点菜系统
- 数学建模 LaTex的安装
- 你们说说kafka是如何做到百万级高并发低迟延的?
- 商米设备开发之-打印(适配大部分商米设备)