Python3 匿名函数
一 匿名函数
lambda函数也叫匿名函数,语法结构如下:
lambda x:x+1
x --> 形参
x+1 --> 返回值,相当于return x+1
实例(Python3.0+):
def foo(x):
return x+1
print(foo(1)) 运行结果:
>>> 2 # 使用lambda函数替换如上函数:
lambda x:x+1
f = lambda x:x+1
print(f(1)) 运行结果:
>>> 2
例题:把字符串"sunwuk"变成'sunwuk_xiyouji'
def change_name(name):
return name + "_xiyouji"
print(change_name("sunwuk")) 运行结果:
>>> sunwuk_xiyouji ----------
使用lambda函数方法:
f = lambda x:x+"_xiyouji"
print(f('sunwuk')) 运行结果:
>>> sunwuk_xiyouji
以下是我复制过来的一些代码,正是通过这些代码让我对匿名函数有了一个比较深入的了解,很感谢不知名的作者。
无参数匿名函数
实例(Python3.0+):
f = lambda :True
print(f()) 运行结果
>>> True 等价于如下函数
def f():
reture True
print(f()) 运行结果
>>> True
字符串正常输出
实例(Python3.0+):
s = 'this is\na\ttest'
print(s)
print(s.split()) # split函数默认分割:空格,换行符,TAB键
print(' '.join(s.split())) 运行结果:
>>> this is
>>> a test
>>> ['this', 'is', 'a', 'test']
>>> this is a test 用join函数把列表转换成字符串
f = lambda :' '.join(s.split())
print(f())
或
print((lambda s:' '.join(s.split()))('this is\na\ttest')) 运行结果:
>>> this is a test """
print((lambda x:x+1)(12))
相当于把12作为形参传入lambda函数中
"""
带参数匿名函数
实例(Python3.0+):
# lambda x: x**3 一个参数
print((lambda x:x**3)(2)) 运行结果
>>> 8 # lambda x,y,z:(x+y+z) 多个参数
print((lambda x,y,z:(x+y+z))(1,2,3)) 运行结果:
>>> 6 # lambda x,y=3:(x*y) 允许参数存在默认值
print((lambda x,y=2:(x+y))(2)) 运行结果:
>>> 4
匿名函数调用
实例(Python3.0+):
#直接赋值给一个变量,然后再像一般函数调用
f = lambda x,y,z:(x*y*z)
print(f(2,3,4)) # 返回一个元祖
a = lambda *z:z
print(a('Testing1','Testing2')) 运行结果:
>>> ('Testing1', 'Testing2') 上例中相当于使用了函数的不定长参数*args,返回值为元组
def foo(*args):
print(args) foo("zhubj","sunwk",'sas') 运行结果:
>>> ('zhubj', 'sunwk', 'sas') #返回一个字典
c = lambda **arg:arg
print(c(a=1,b=2)) 运行结果:
>>> {'a': 1, 'b': 2} 上例中相对于使用了函数的**kwargs参数,返回值为字典
def foo(x,**kwargs):
print(x)
print(kwargs) foo(1,a=2,b=3) 运行结果:
>>> 1
>>> {'a': 2, 'b': 3} #直接后面传递实参
print((lambda x,y:x if x > y else y)(1,2)) 运行结果:
>>> 2
Python3 匿名函数的更多相关文章
- python3 匿名函数,map/reduce/filter等函数结合应用
匿名函数就是不需要显式的指定函数 # 平方函数 def func1(x): return x**2 print(func1) # 平方函数匿名函数写法 func2=lambda x:x**2 prin ...
- python3匿名函数
当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外, ...
- 第十二天python3 匿名函数
python借助lambda表达式构建匿名函数: 参数列表不需要小括号: 冒号是用来分割参数列表和表达式的: 不需要使用return,表达式的值,就是匿名函数返回值: lambda表达式(匿名函数)只 ...
- Python3 内置函数补充匿名函数
Python3 匿名函数 定义一个函数与变量的定义非常相似,对于有名函数,必须通过变量名访问 def func(x,y,z=1): return x+y+z print(func(1,2,3)) 匿名 ...
- Python 内置函数补充匿名函数
Python3 匿名函数 定义一个函数与变量的定义非常相似,对于有名函数,必须通过变量名访问 def func(x,y,z=1): return x+y+z print(func(1,2,3)) 匿名 ...
- 自学Python3.4-函数分类(匿名函数)
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- Python3基础(4)匿名函数、装饰器、生成器、迭代器、内置函数、json&pickle序列化、软件目录开发规范、不同目录间模块调用
---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...
- python3.x 匿名函数lambda_扩展sort
#匿名函数lambda 参数: 表达式关键字 lambda 说明它是一个匿名函数,冒号 : 前面的变量是该匿名函数的参数,冒号后面是函数的返回值,注意这里不需使用 return 关键字. ambda只 ...
- python3中匿名函数做参数,匿名函数做实参,eval关键字
一:说到匿名函数,大家都感到陌生又熟悉,今天我带大家了解一下py3中的匿名函数,以及匿名函数作为函数的参数的情况 主要通过以下实例来说明: 实例一: newarr =[33,44444,6222,88 ...
随机推荐
- Oracle特殊查询 行列倒转 分页
--查询工资最高的前三名 (分页的感觉)select * from(select * from emp order by sal desc) twhere rownum <=3--查询工资最高的 ...
- mac 下安装php7.1 redis
1.下载phpredis源文件 https://nodeload.github.com/nicolasff/phpredis/zip/master 下载后解压 2.执行命令 phpize 执行后执行 ...
- vue中点击添加class,双击去掉class
VUE中 html 中 <ul id="shoppingList" v-on:click="addClass($event)" class="i ...
- [示例] Firemonkey 面包屑导航
原码下载:[示例]Firemonkey面包屑导航_Aone.zip 效果:(以下效果不用写一行代码)
- 使用Selenium慢慢向下滚动页面
我正试图从航班搜索页面抓取一些数据. 此页面以这种方式工作: 你填写一个表格,然后你点击按钮搜索 – 这没关系.当您单击该按钮时,您将被重定向到包含结果的页面,这就是问题所在.这个页面连续添加结果,例 ...
- ARM设备树
学习目标:学习设备树相关内容: 一.概念 在Linux 2.6中,ARM架构的板极硬件细节过多地被硬编码在arch/arm/plat-xxx和arch/arm/mach-xxx,在kernel中存在大 ...
- Python enumerate()方法
for循环中如果要获取当前元素的索引值,一个方法是定义一个计数器,每次取值的时候将这个值加一,如果是列表的话可以用index()函数,而python中有一个比较简洁的方法而已直接获得索引值,并可以方便 ...
- cocos2d-x安装
mac 安装2.2.6为例 1.进入cocos2d-x/tools/project-creator/ 2.输入 python create_project.py -project HelloWorld ...
- document ready
https://developer.mozilla.org/zh-CN/docs/Web/Events/DOMContentLoaded https://github.com/addyosmani/j ...
- 20155203 实验一《Java开发环境的熟悉》实验报告
20155203 实验一<Java开发环境的熟悉>实验报告 一.实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 二.练 ...