Python3 函数进阶3
匿名函数
定义匿名函数
我们之前定义的函数都是有名函数, 我们可以通过函数名来调用
匿名函数顾名思义就是一种没有绑定函数名的函数, 使用一次既被回收
- 匿名函数结构:
lambda 参数 : 返回值
# 输入两个参数, 返回两个参数得和
lambda x, y: x+y
匿名函数的使用
我们如何使用匿名函数呢? 由于匿名函数的特性, 匿名函数通常与其他内置方法联用
- max()/min() + 匿名函数
# 取出年龄最大者的姓名
age_dict = {
'bigb': 20,
'blake': 22,
'tom': 24,
'jason': 26
}
# 有名函数实现方法
def func(name):
return age_dict[name]
res = max(age_dict, key=func)
print(res) # jason
'''
max()方法会遍历age_dict得到key
将key依次传入func中, 返回年龄
再对年龄排序,得到最大值
'''
# 匿名函数实现方法
res = max(age_dict, key=lambda name: age_dict[name])
print(res) # jason
- filter() + 匿名函数
# 取出年龄大于22岁者的姓名
age_dict = {
'bigb': 20,
'blake': 22,
'tom': 24,
'jason': 26
}
res = filter(lambda name: age_dict[name] > 22, age_dict)
print(list(res)) # ['tom', 'jason']
'''
filter()方法会遍历age_dict得到key
将key依次传入匿名函数, 返回大于22
res本质上是迭代器对象
'''
- map() + 匿名函数
# 返回由(lis元素+2)组成的列表
lis = [1, 2, 3]
def func(item):
return item + 2
res = map(func, lis)
print(list(res)) # [3, 4, 5]
# 匿名函数实现方法
res = map(lambda item: item + 2, lis)
print(list(res)) # [3, 4, 5]
- sorted() + 匿名函数
# 将四个人姓名按年龄降序排列
age_dict = {
'bigb': 20,
'blake': 22,
'tom': 24,
'jason': 26
}
def func(name):
return age_dict[name]
res = sorted(age_dict, key=func, reverse=True)
print(res) # ['jason', 'tom', 'blake', 'bigb']
# 匿名函数实现方法
res = sorted(age_dict, key=lambda name: age_dict[name], reverse=True)
print(res) # ['jason', 'tom', 'blake', 'bigb']
内置函数
- enumerate() 返回包含元素索引和元素的对象
lis = [1, 2, 3]
for ind,val in enumerate(lis):
print(ind, val)
'''
0 1
1 2
2 3
'''
- eval() 去除字符串的引号, 留下来什么就是什么
s = '[1, 2, 3]'
print(type(eval(s)), eval(s)) # <class 'list'> [1, 2, 3]
- divmod() 取整取余
- chr/ord ASCII和字母转换
- hash 是否可哈希
- bytes 解码字符
- round 四舍五入
- dir 列出模块所有方法
- globals/locals 列出所有全局变量/列出当前位置所有变量
- pow 求次方
- any/all 迭代对象内的元素有一个为True则为True/所有为True则为True
- abs 绝对值
- sum 求和
Python3 函数进阶3的更多相关文章
- 5 Python3 函数进阶&迭代器与生成器
1.函数进阶 1.1.名称空间 又名name space, 顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的 ...
- Python3 函数进阶2
目录 迭代器 可迭代对象 迭代器对象 总结和补充 列表推导式 字典生成式 zip()函数 递归 迭代器 迭代器是访问容器类数据类型元素的一种方式 迭代器是一个可以记住遍历的位置的对象 迭代器对象从容器 ...
- Python3 函数进阶1
目录 闭包函数 什么是闭包函数 闭包函数的作用 装饰器 什么是装饰器 无参装饰器 有参装饰器 闭包函数 什么是闭包函数 闭包函数本质上就是函数嵌套和高阶函数 闭包函数的满足条件: 必须嵌套函数 内嵌函 ...
- python3函数进阶
1.命名空间和作用域 命名空间 加载 内置命名空间 python解释器自带的变量和函数 开启python解释器自动加载内置命名空 ...
- 洗礼灵魂,修炼python(25)--自定义函数(6)—从匿名函数进阶话题讲解中解析“函数式编程”
匿名函数进阶 前一章已经说了匿名函数,匿名函数还可以和其他内置函数结合使用 1.map map():映射器,映射 list(map(lambda x:x*2,range(10))) #把range产生 ...
- 10.Python初窥门径(函数进阶)
Python(函数进阶) 一.函数的传参(接上期) 形参角度(一共四种,后两种) 动态参数(万能参数)* # 定义一个函数时,*所有的位置参数聚合到一个元组中 def func(*args): # * ...
- 全面系统Python3入门+进阶课程 ✌✌
全面系统Python3入门+进阶课程 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 无论是大数据.人工智能还是机器学习,Python都是最热门的首选语言 ,这 ...
- 深入理解javascript函数进阶系列第一篇——高阶函数
前面的话 前面的函数系列中介绍了函数的基础用法.从本文开始,将介绍javascript函数进阶系列,本文将详细介绍高阶函数 定义 高阶函数(higher-order function)指操作函数的函数 ...
- python3函数
一.python3函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.可以自己创建函数,这被叫做用户自定义函数. 1.定义函数规则 函 ...
随机推荐
- Dev 日志 | 一次 Segmentation Fault 和 GCC Illegal Instruction 编译问题排查 NebulaGraph
摘要 笔者最近在重新整理和编译 Nebula Graph 的第三方依赖,选出两个比较有意思的问题给大家分享一下. Flex Segmentation Fault--Segmentation fault ...
- Mssql 查询某记录前后N条
Sqlserver 查询指定记录前后N条,包括当前数据 条件 [ID] 查询 [N]条 select * from [Table] where ID in (select top ([N]+1) ID ...
- MySQL/MariaDB读写分离配置
DB读写分离描述 数据库的读写分离其实就是为了加减少数据库的压力:数据库的写入操作由主数据库来进行,读取操作由从数据库来进行操作.实现数据库读写分离技术是有很多方法的,在这里我就用一个比较简单的mys ...
- CSS:CSS弹性盒子布局 Flexible Box
一.简介 flexbox:全称Flexible Box, 弹性盒子布局.可以简单实现各种伸缩性的设计,它是由伸缩容器和伸缩项目组成.任何一个元素都可以指定为flexbox布局.这种新的布局方案在200 ...
- CentOs虚拟机配置
1.打开“VMware”,点击“主页”,点“创建新的虚拟机”: 2.会弹出一个“新建虚拟机向导”,类型选择“典型”,点击“下一步”: 3.选择“稍后安装操作系统”,点击“下一步”: 4.我们用的是Li ...
- Spring Boot2 系列教程(二十六)Spring Boot 整合 Redis
在 Redis 出现之前,我们的缓存框架各种各样,有了 Redis ,缓存方案基本上都统一了,关于 Redis,松哥之前有一个系列教程,尚不了解 Redis 的小伙伴可以参考这个教程: Redis 教 ...
- Ubuntu 16.04 安装Maven3.3.9
1 下载地址 http://maven.apache.org/download.cgi 2 将下载到的apache-maven-3.3.9-bin.tar.gz文件上传到/temp目录下,然后切换到r ...
- gdb(ddd,kdevelop等)调试ZeroIce开发的应用程序,中断信号引起的问题
不作文,只记要点. 1.Ice::Application的程序框架默认对SIGHUP, SIGINT, SIGTERM进行处理.目的就是捕捉Ctrl+C发出信号有序地结束程序.这个功能扰乱了我们使用g ...
- .NET高级特性-Emit(1)
在这个大数据/云计算/人工智能研发普及的时代,Python的崛起以及Javascript的前后端的侵略,程序员与企业似乎越来越青睐动态语言所带来的便捷性与高效性,即使静态语言在性能,错误检查等方面的优 ...
- 并行模式之Guarded Suspension模式
并行模式之Guarded Suspension模式 一).Guarded Suspension: 保护暂存模式 应用场景:当多个客户进程去请求服务进程时,客户进程的请求速度比服务进程处里请求的速度快, ...