Python入门篇-匿名函数
Python入门篇-匿名函数
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.匿名函数概述
1>.什么是匿名函数
匿名,即没有名字
匿名函数,即没有名字的函数
2>.匿名函数编写格式
Python借助Lambda表达式构建匿名函数
匿名函数格式如下:
lambda 参数列表:表达式
3>.匿名函数注意事项
(1)使用lambda关键字来定义匿名函数 (2)参数列表不需要小括号 (3)冒号是用来分割参数列表和表达式的 (4)不需要使用return,表达式的值,就是匿名函数返回值 (5)lambda表达式(匿名函数)只能写在一行上,被称为单行函数 (6)匿名函数用途:在高阶函数传参时,使用lambda表达式,往往能简化代码
二.匿名函数定义
1>.匿名函数的定义和调用
#!/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 l1 = lambda x : x ** 2 #使用lambda关键字定义匿名函数,我们可以给它复制给一个变量 res = l1(5) #调用匿名函数 print(res) print((lambda x:x **2)(5)) #当然,上面3行代码我们可以写成一行哟~ #以上代码执行结果如下:
25
25
2>.不推荐使用的匿名函数案例
#!/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 foo = lambda x,y :(x + y) ** 2 #定义一个匿名函数,我们给它复制给一个变量,其实我们并不推荐这样使用 print("foo:{}".format(foo(10,20))) #调用我们定义的匿名函数 def bar(x,y): #我们不推荐使用上面的方法,而是建议使用普通函数定义比价复杂的功能
return (x + y) ** 2 print("bar:{}".format(bar(10,20))) #以上代码执行结果如下:
foo:900
bar:900
3>.一些简单的匿名函数案例
#!/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 print((lambda :0)()) print((lambda x, y=3: x + y)(5)) print((lambda x, y=3: x + y)(5, 6)) print((lambda x, *, y=30: x + y)(5)) print((lambda x, *, y=30: x + y)(5, y=10)) print((lambda *args: (x for x in args))(*range(5))) print((lambda *args: [x+1 for x in args])(*range(5))) print((lambda *args: {x+2 for x in args})(*range(5))) print([x for x in (lambda *args: map(lambda x: x+1, args))(*range(5))]) print([x for x in (lambda *args: map(lambda x: (x+1,args), args))(*range(5))]) #以上代码执行结果如下:
0
8
11
35
15
<generator object <lambda>.<locals>.<genexpr> at 0x000000000221D5C8>
[1, 2, 3, 4, 5]
{2, 3, 4, 5, 6}
[1, 2, 3, 4, 5]
[(1, (0, 1, 2, 3, 4)), (2, (0, 1, 2, 3, 4)), (3, (0, 1, 2, 3, 4)), (4, (0, 1, 2, 3, 4)), (5, (0, 1, 2, 3, 4))]
3>.匿名函数使用案例
#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie from collections import defaultdict d = defaultdict(lambda :0) for k in 'abcd':
for j in range(3):
d[k] += 1 print(d)
print(d.keys())
print(d.values()) #以上代码输出结果如下:
defaultdict(<function <lambda> at 0x000001BD1A39D948>, {'a': 3, 'b': 3, 'c': 3, 'd': 3})
dict_keys(['a', 'b', 'c', 'd'])
dict_values([3, 3, 3, 3])
Python入门篇-匿名函数的更多相关文章
- Python入门篇-生成器函数
Python入门篇-生成器函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.生成器概述 1>.生成器generator 生成器指的是生成器对象,可以由生成器表达式得到, ...
- python 基础篇 匿名函数
匿名函数基础 首先,什么是匿名函数呢?以下是匿名函数的格式: lambda argument1, argument2,... argumentN : expression 我们可以看到,匿名函数的关键 ...
- Python入门篇-高阶函数
Python入门篇-高阶函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.高级函数 1>.First Class Object 函数在Python中是一等公民 函数也 ...
- Python入门篇-函数、参数及参数解构
Python入门篇-函数.参数及参数解构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数概述 1>.函数的作用即分类 函数 数学定义:y=f(x) ,y是x的函数,x ...
- Python入门篇-面向对象概述
Python入门篇-面向对象概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.语言的分类 面向机器 抽象成机器指令,机器容易理解 代表:汇编语言 面向过程 做一件事情,排出个 ...
- Python入门篇-文件操作
Python入门篇-文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件IO常用操作 open:打开 read:读取 write:写入 close:关闭 readlin ...
- Python入门篇-functools
Python入门篇-functools 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.reduce方法 reduce方法,顾名思义就是减少 reduce(function,se ...
- Python入门篇-类型注解
Python入门篇-类型注解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数定义的弊端 1>.动态语言很灵活,但是这种特性也是弊端 Python是动态语言,变量随时可 ...
- Python入门篇-装饰器
Python入门篇-装饰器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.装饰器概述 装饰器(无参) 它是一个函数 函数作为它的形参 返回值也是一个函数 可以使用@functi ...
随机推荐
- python 实现一个简单tcp epoll socket
python 实现一个epoll server #!/usr/bin/env python #-*- coding:utf-8 -*- import socket import select impo ...
- WeQuant教程—1.3 利用回测工具降低交易风险
量化系统投入实际使用之前,人们会希望提前测试交易的效果.这个期间往往涉及代码的改动和参数的调整.最常见的做法是将历史数据输入量化系统,让量化系统根据既定的交易逻辑进行操作,观察和分析交易结果,找到问题 ...
- element ui表格常用功能如:导出 新增 删除 多选 跨页多选 固定表头 多级表头 合并行列 等常见需求
<template> <div class="table-cooperte"> <el-table :data="tableData&quo ...
- Docker---数据卷Volume的简单使用(使用DockerFile实现)
DockerFile是什么?Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像.它们简化了从头到尾的流程并极大的简化了部署工作.Dockerfile从FR ...
- 【转帖】极简Docker和Kubernetes发展史
极简Docker和Kubernetes发展史 https://www.cnblogs.com/chenqionghe/p/11454248.html 2013年 Docker项目开源 2013年,以A ...
- [转帖]Zookeeper
Zookeeper https://www.cnblogs.com/zhang-qc/p/8877082.html Zookeeper其实是一种为分布式应用所设计的高可用.高性能且一致的开源协调服 ...
- java-工厂
class Mouse{ public void sayHi(){}; } class DellMouse extends Mouse { @Override public void sayHi() ...
- 类的练习2——python编程从入门到实践
9-7 管理员: 管理员是一种特殊的用户.编写一个名为Admin的类,并让它继承练习9-3或者9-5的User类.添加一个名为privileges的属性,用于存储一个由字符串(如"can a ...
- Django框架之第四篇(视图层)--HttpRequest对象、HttpResponse对象、JsonResponse、CBV和FBV、文件上传
视图层 一.视图函数 一个视图函数,简称视图,是一个简单的python函数,它接收web请求并且会返回web响应.响应可以是一张网页的html,一个重定向,或者是一张图片...任何东西都可以.无论是什 ...
- JS实现简单的图片透明度循环变化(渐变)
找了好多,都是由100到0就结束了,到头来自己魔改,以下就是源码. div中加入img,js添加函数,完事(调用),取名后面加个1是为了避免冲突 <!DOCTYPE HTML> <h ...