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.定义函数规则 函 ...
随机推荐
- nyoj 49-开心的小明(动态规划, 0-1背包问题)
49-开心的小明 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:7 submit:11 题目描述: 小明今天很开心,家里购置的新房就要领钥匙了,新房 ...
- nyoj 114-某种序列 (python EOFError, List, append)
114-某种序列 内存限制:64MB 时间限制:3000ms 特判: No 通过数:6 提交数:13 难度:4 题目描述: 数列A满足An = An-1 + An-2 + An-3, n >= ...
- RabbitMQ学习笔记之五种模式及消息确认机制
本文详细介绍简单模式Simple.工作模式Work.发布订阅模式Publish/Subscribe.Topic.Routing. Maven依赖引用 <dependencies> < ...
- 装饰者模式学习:模拟咖啡馆的点单系统来剖析装饰者模式的使用 + 装饰者模式在java I/O 中的应用
通过模拟咖啡馆的点单系统来剖析装饰者模式的使用 参考:https://blog.csdn.net/gududedabai/article/details/81989196 一).传统的点单系统构建,每 ...
- VSCode, Django, and Anaconda开发环境集成配置[Windows]
之前一直是在Ubuntu下进行Python和Django开发,最近换了电脑,把在Virtual Box 下跑的Ubuntu开发机挪过来总是频繁崩溃,索性就尝试把开发环境挪到Windows主力机了. 不 ...
- 如何配置tomcat的环境变量
如何配置tomcat的环境变量 安装好tomcat之后, 按照这个操作,计算机→属性→高级系统设置→高级→环境变量,打开环境变量设置框. 以本人的tomcat 8.0为例:安装下来如图 那么我的tom ...
- Linux\CentOS MySql 安装与配置
一.MySQL 简介 MySQL 是一个关系型数据库管理系统,是MySQL AB公司开发,现在属于 Oracle 旗下产品. MySQL 采用标准化语言.体积小.速度快.成本低.开源等特点使得一些中小 ...
- 开始你的api:NetApiStarter
在此之前,写过一篇 给新手的WebAPI实践 ,获得了很多新人的认可,那时还是基于.net mvc,文档生成还是自己闹洞大开写出来的,经过这两年的时间,netcore的发展已经势不可挡,自己也在不断的 ...
- PHP基于Redis实现轻量级延迟队列
延迟队列,顾名思义它是一种带有延迟功能的消息队列. 那么,是在什么场景下我才需要这样的队列呢? 一.背景 先看看一下业务场景: 1.会员过期前3天发送召回通知 2.订单支付成功后,5分钟后检测下游环节 ...
- 堆模板(STL版)
题目描述 如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 输入输出格式 输入格式: ...