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 ========================== ...
随机推荐
- libgdx判断矩形重叠碰撞
有两种方式. 1. 排除法,排除四种不可能重叠的情况就是了. public static boolean IsOverlap( Rectangle rect1, Rectangle rect2 ){ ...
- 设计模式 笔记 生成器(建造者)模式 Builder
//---------------------------15/04/08---------------------------- //builder 生成器(建造者)模式---对象创建型模式 /* ...
- JS基础内容小结(DOM&&BOM)(二)
元素.childNodes:只读 属性 子节点列表集合 元素.nodeType:只读 属性 当前元素下的节点类型 元素.attributes : 只读 属性 属性列表集合 元素.children: 只 ...
- 【转载】SSD断电保护原理
异常掉电的隐患 若没有合理的掉电保护机制,而异常掉电的发生又不可避免,当发生异常掉电,会引发很多问题. (1)丢盘 异常掉电,会使得映射表来不及保存,丢失逻辑地址到物理地址的映射,待重新上电后,SSD ...
- Docker_容器化gitlab
Docker部署接口自动化持续集成环境第一步,容器化一个Gitlab! 1:开放防火墙端口 sudo yum install curl openssh-server openssh-clients p ...
- 微信小程序获取客户端系统信息
微信小程序中有个API: wx.getSystemInfo() 可以获取系统的信息 wx.getSystemInfoSync()===>同步获取系统信息 wx.getSyatemInfo({ s ...
- idea创建web项目教程
官网下载idea,安装配置好后,双击进来,第一次创建项目时新建是这样的 第一步: 第二步:创建项目名和项目存放的路径 点finish进入这里 第三步: 第二步点OK进入这个页面,点上面那个加号 ...
- 机器视觉及图像处理系列之一(C++,VS2015)——搭建基本环境
自<人脸识别>系列发布至今,已一年多矣,期间除答复些许同好者留言外,未再更新文,盖因项目所迫,不得已转战它途,无暇.无料更博耳.其时,虽人已入项目中,然终耿怀于人脸识别方案之谬.初,写此文 ...
- Beta阶段对团队成员公开感谢
我感谢付佳对我的帮助,因为Beta阶段她承担了一名组长责任,每次代码编写,安排任务都由她带头来做,并且在代码方面帮助我解决了一些问题.
- Spring sprint @ first day
前几天,我们讨论出任务划分.结合任务及个人情况,我认领校园网认证和网盘服务这块. 认证原理整3天,尝试编译2天,整合模块5天. 日期 时间 地点 工作 5.11 20:00 九实 下载mentohus ...