Python内置函数之匿名(lambda)函数
Python内置函数之匿名(lambda)函数
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.匿名函数
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com def func1(x):
return x**2
print(func1(10))
del func1 #由于函数我们只调用了一次,调用完毕之后就可以删除了。 func2= lambda x:x**2 #这就是一个没有名字的函数,第一个x表示函数的参数,之后的x表示返回的函数体,用lambda声明的函数我们称之为匿名函数。
print(func2(10)) """
lambda函数我们称之为匿名函数:
优点:
1>.可以替换一些简单的功能的函数;
2>.用关键字lambda声明匿名函数,其中冒号之前是匿名函数的参数,冒号之后则是具体的代码;
3>.当函数调用完毕会被Python解释器释放内存,清理掉多余的内存空间;
缺点:
1>.不能完全替换有名称的函数且功能实现的功能简单,对一些复杂的逻辑就没法用匿名函数替换;
""" #以上代码执行结果如下:
100
100
二.最大值(max)与最小值(min)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com salaries = {
"yinzhengjie":100000,
"alex":800000,
"agon":500000,
} res = zip(salaries.values(),salaries.keys()) #调用内置函数的拉链函数将人名和薪资组合成一个元组;
# print(max(res)[-1]) #取薪资最少的人名;
# print(min(res)[-1]) print(max(salaries,key=lambda x:salaries[x])) #当然我们可以用匿名函数来做相同的功能;
print(min(salaries,key=lambda x:salaries[x])) #取薪资最少的人名; #以上代码执行结果如下:
alex
yinzhengjie
三.映射函数(map)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com list_num = [1,3,5,7,9]
m = map(lambda x:x**2,list_num) #映射函数map,这里我们是对一个列表案例做处理;
print(list(m)) names = ["yinzhengjie","wudonghang","fangheyi","taotao"]
print(list(map(lambda item:item+"_NB",names))) #以上代码执行结果如下:
[1, 9, 25, 49, 81]
['yinzhengjie_NB', 'wudonghang_NB', 'fangheyi_NB', 'taotao_NB']
四.reduce函数
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com from functools import reduce
print(reduce(lambda x,y:x+y,range(100),100)) #第一个参数是需要执行的代码,第二个参数是循环条件,第三个数字是指定一个起始值; # res = 0
# for i in range(101):
# res += i
# print(res) #以上代码执行结果如下:
5050
五.过滤函数(filter)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com names = ['yinzhengjie_NB', 'wudonghang_NB', 'fangheyi_NB', 'taotao_NB',"wuzhiguang","hansenyu"] print(list(filter(lambda name:name.endswith("_NB"),names))) #只过滤列表names中含有“_NB”字母的元素 #以上代码执行结果如下:
['yinzhengjie_NB', 'wudonghang_NB', 'fangheyi_NB', 'taotao_NB']
六.排序函数(sorted)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com list_num = [1,4,3,6,7,9,2,8]
print(sorted(list_num)) #正序排序
print(sorted(list_num,reverse=True)) #倒叙排序 #以上代码执行结果如下:
[1, 2, 3, 4, 6, 7, 8, 9]
[9, 8, 7, 6, 4, 3, 2, 1]
Python内置函数之匿名(lambda)函数的更多相关文章
- Python内置函数二 (递归函数,匿名函数,二分法)
匿名函数 lambda() 语法: lambad 参数 : 返回值 def func(a,b): return a * b print(func(2,5)) a = lambda a ,b : a* ...
- python(16)- python内置函数
python内置了一系列的常用函数,以便于我们使用,python英文官方文档详细说明:https://docs.python.org/3/library/functions.html Buil ...
- python内置常用高阶函数(列出了5个常用的)
原文使用的是python2,现修改为python3,全部都实际输出过,可以运行. 引用自:http://www.cnblogs.com/duyaya/p/8562898.html https://bl ...
- Python内置的字符串处理函数整理
Python内置的字符串处理函数整理 作者: 字体:[增加 减小] 类型:转载 时间:2013-01-29我要评论 Python内置的字符串处理函数整理,收集常用的Python 内置的各种字符串处理 ...
- python内置函数,匿名函数
一.匿名函数 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数 def calc(n): return n**n print(calc(10)) #换成匿名函数 calc = lambda n ...
- lambda 表达式+python内置函数
#函数 def f1(a,b): retrun a+b #lambda方式,形参(a,b):返回值(a+b) f2=lambda a,b : a+b 在一些比较简单的过程计算就可以用lambda p ...
- Python基础篇【第2篇】: Python内置函数(一)
Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位 ...
- Python - 内置函数 选例
概览参见 https://www.runoob.com/python/python-built-in-functions.html 官方文档 https://docs.python.org/3/li ...
- Python内置函数6
Python内置函数6 1.license() 输出当前python 的license信息 A. HISTORY OF THE SOFTWARE ========================== ...
随机推荐
- 洛咕 P3706 [SDOI2017]硬币游戏
假设f[i]是第i个同学胜利的概率,也就是随机序列第一个匹配到s[i]的概率 假设前面有一个字符串\(S\),(假设无限长但没有匹配),现在往后面要加上第i个串\(s[i]\),这个的概率设为\(P_ ...
- springmvc 结合 自动封装异常信息输出为json 报错 500内部服务器错误的原因
补充:还有一个原因是因为spring的对象没有被成功注入,例如 mapper没有被成功注入,抛出异常时在这种封装场景下将会抛出 500 服务器内部错误, 这种情况下要排查还是靠debug然后看看到底是 ...
- bootstrap-validator基本使用(自定义验证身份证号和手机号)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- MyBatis的一级缓存和二级缓存简介笔记
关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...
- 虚拟机console基础环境部署——工作目录准备
1. 概述2. 相关约定2.1 删除旧文件2.2 创建全局共享文件目录2.3 创建全局软件安装目录2.4 创建数据放置目录3. 总结 1. 概述 上述博客中,已经为console最小化安装了操作系统. ...
- JQ_五星级评分特效
代码如下:<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" conte ...
- cbuild-一个创建和管理C++项目的工具
cbuild-一个创建和管理C++项目的工具 介绍: 这是个人开发的一个管理C++项目的工具,用shell脚本编写. 可能会不定期更新,也欢迎大家一起完善. 当前开发版本0.5.各版本功能如下: ve ...
- PAT甲题题解-1060. Are They Equal (25)-字符串处理(科学计数法)
又是一道字符串处理的题目... 题意:给出两个浮点数,询问它们保留n位小数的科学计数法(0.xxx*10^x)是否相等.根据是和否输出相应答案. 思路:先分别将两个浮点数转换成相应的科学计数法的格式1 ...
- LINUX内核分析第六周学习总结——进程的描述和进程的创建
LINUX内核分析第六周学习总结——进程的描述和进程的创建 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/cours ...
- PAT 2016 数据的交换输出
http://acm.hdu.edu.cn/showproblem.php?pid=2016 Problem Description 输入n(n<100)个数,找出其中最小的数,将它与最前面的数 ...