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式-匿名函数、内置函数、映射函数相关推荐

  1. Python基础11-函数式编程与内置函数

    目录 函数即变量 lambda关键字定义匿名函数 高阶函数 内置函数map 内置函数filter 内置函数reduce 内置函数看文档 函数即变量 书接上回,Python里面,函数就是变量,可以被当成 ...

  2. python - - 函数 - - 内置函数和匿名函数

    目录 内置函数 匿名函数 本章小结 相关练习题 1,内置函数 python里的内置函数.截止到python版本3.6.2,现在python一共为我们提供了68个内置函数. Built-inFuncti ...

  3. Python全栈之路系列----之-----内置函数和匿名函数lamdba

    引子 什么是内置函数? 内置函数就是python 提供给我们直接拿来就可以用的函数   内置函数--内置命名空间   只管调用 不管实现 总共68个 def func(): == #这是自己定义的函数 ...

  4. Python学习8 函数 匿名函数 内置函数

    转换相关的方法-eval 转换相关的方法-json 函数基本语法大纲 函数概念 示例: 题目: 函数的参数 def f(x,y=1,*z,**abc):print(x,y,z,abc,sep=&quo ...

  5. Python中lambda详解(包括内置函数map、reduce、filter、sorted、max)

    文章目录 一.lambda是什么? 1.lambda语法 2.语法详解 二.lambda的使用 1.定义 2.调用 3.替换 4.作返回值 三.lambda作参数 1.map函数 2.reduce函数 ...

  6. 零基础学Python(第二十二章 常用内置函数)

    本套学习内容共计[22]个章节,每个章节都会有对应的从0-1的学习过程详细讲解,希望可以给更多的人提供帮助. 开发环境:[Win10] 开发工具:[Visual Studio 2019] 本章内容为: ...

  7. [转载] Python列表排序 list.sort方法和内置函数sorted

    参考链接: Python中的函数 Python列表排序 list.sort方法和内置函数sorted 很多时候我们获取到一个列表后,这个列表并不满足我们的需求,我们需要的是一个有特殊顺序的列表. 这时 ...

  8. Python列表排序 list.sort方法和内置函数sorted

    Python列表排序 list.sort方法和内置函数sorted 很多时候我们获取到一个列表后,这个列表并不满足我们的需求,我们需要的是一个有特殊顺序的列表. 这时候就可以使用list.sort方法 ...

  9. 学习日记0802函数递归,三元表达式,列表生成式,字典生成式,匿名函数+内置函数...

    1 函数的递归 函数的递归调用时函数嵌套调用的一种特殊形式,在调用的过程中又直接或者间接的调用了该函数 函数的递归调用必须有两个明确的阶段: 1 回溯:函数一次次的调用下去每一次调用,问题的规模都应该 ...

最新文章

  1. 安装版 修改mysql最大连接数_修改MySQL最大连接数
  2. 元气森林唐彬森:十万块就能爆发团队创造力
  3. java lambdamart库,LambdaMART 之 lambda(示例代码)
  4. MySQL数据库-笔记05【查询练习题*25道(附解析)】
  5. C#将对象序列化成JSON字符串
  6. Spring Boot Shiro权限管理--自定义 FormAuthenticationFilter验证码整合
  7. 1流明等于多少lux_要想投影仪画质清晰,投影仪流明和对比度不得不看
  8. WinRAR命令行参数
  9. 关于GPS数据跳动问题的解决方案
  10. 在Python中如何优雅地处理PDF文件
  11. setup factory 会话变量
  12. 蚌埠学院计算机基础,蚌埠学院电子教务登录
  13. ul阻燃标准有几个等级_UL阻燃等级
  14. 高速缓存(cache)存储器
  15. android恶意积分墙代码,传统积分墙的忧虑:微信积分墙刷榜优化分析
  16. 文献调研(九):基于rough set理论和深度学习算法的建筑能耗预测模型
  17. 莎士比亚统计最高的词频数 java,spark,rdd
  18. Oracle -PL/SQL Developer错误解决方案(ORA-02291)
  19. BFC(Block Formatting Context) 及其如何工作
  20. 氢化溶血卵磷脂行业研究分析

热门文章

  1. 数据库的应用(税务)
  2. 电脑强制关机以后计算机无法启动,如何解决win10强制关机后电脑启动不了的问题...
  3. 360安全浏览器怎么打开html,360安全浏览器如何使用无痕模式
  4. 【2017.12.09】安卓巴士全球开发者论坛广州站 ——全面开启安卓洪荒之力
  5. android 论坛末班,大幅提高Android开发效率之TemplateBuilder
  6. 整理的关于面试的一些资料-20210601
  7. 花了两天做了一个随机点菜系统
  8. 数学建模 LaTex的安装
  9. 你们说说kafka是如何做到百万级高并发低迟延的?
  10. 商米设备开发之-打印(适配大部分商米设备)