一 匿名函数

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 匿名函数的更多相关文章

  1. python3 匿名函数,map/reduce/filter等函数结合应用

    匿名函数就是不需要显式的指定函数 # 平方函数 def func1(x): return x**2 print(func1) # 平方函数匿名函数写法 func2=lambda x:x**2 prin ...

  2. python3匿名函数

    当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外, ...

  3. 第十二天python3 匿名函数

    python借助lambda表达式构建匿名函数: 参数列表不需要小括号: 冒号是用来分割参数列表和表达式的: 不需要使用return,表达式的值,就是匿名函数返回值: lambda表达式(匿名函数)只 ...

  4. Python3 内置函数补充匿名函数

    Python3 匿名函数 定义一个函数与变量的定义非常相似,对于有名函数,必须通过变量名访问 def func(x,y,z=1): return x+y+z print(func(1,2,3)) 匿名 ...

  5. Python 内置函数补充匿名函数

    Python3 匿名函数 定义一个函数与变量的定义非常相似,对于有名函数,必须通过变量名访问 def func(x,y,z=1): return x+y+z print(func(1,2,3)) 匿名 ...

  6. 自学Python3.4-函数分类(匿名函数)

    自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...

  7. Python3基础(4)匿名函数、装饰器、生成器、迭代器、内置函数、json&pickle序列化、软件目录开发规范、不同目录间模块调用

    ---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...

  8. python3.x 匿名函数lambda_扩展sort

    #匿名函数lambda 参数: 表达式关键字 lambda 说明它是一个匿名函数,冒号 : 前面的变量是该匿名函数的参数,冒号后面是函数的返回值,注意这里不需使用 return 关键字. ambda只 ...

  9. python3中匿名函数做参数,匿名函数做实参,eval关键字

    一:说到匿名函数,大家都感到陌生又熟悉,今天我带大家了解一下py3中的匿名函数,以及匿名函数作为函数的参数的情况 主要通过以下实例来说明: 实例一: newarr =[33,44444,6222,88 ...

随机推荐

  1. Linux-- 查看文件 cat/tac

    cat 查看文件 用法:cat 文件名 1.显示非空白行行号 -b 2.显示所有行号 -n 3.将[Tab]按键以 ^T 显示出来 -T 4.显示出特殊字符 -V 5.将结尾的断行字符$显示出来 -E ...

  2. #leetcode刷题之路28-实现 strStr() 函数

    实现 strStr() 函数.给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始).如果不存在,则返回 ...

  3. python通过xlsxwriter模块将文字写入xlsx文件

    #今天和大家一起学习通过python的xlsxwriter模块 xlsxwriter模块主要用来生成excel表格,插入数据.插入图标等表格操作等. 环境:python 3 1)安装 xlsxwrit ...

  4. 01.centos7环境准备

    博客为日常工作学习积累总结: 1.环境准备: 系统版本:CentOS-7-x86_64-Minimal-1810.iso 运行环境:虚拟机windows上的VM 15 系统安装:参照老男孩运维要求 2 ...

  5. react中如何获取onclick事件调用元素的dom对象

    今天终于有时间写博客了, 前几天项目有个需求,我感觉用dom操作兄弟元素实现比较方便,但是前端用的react框架不能用jquery的$(this)获取当前元素,查了好多资料和尝试后写下总结: 在HTM ...

  6. 【四】搭建Nginx服务器

    [任务4]搭建Nginx服务器 [任务4]搭建Nginx服务器 下载Nginx源码包 安装Nginx 解压Nginx安装包 安装Nginx依赖 启动Nginx 安装cgi 下载cgi并解压安装包 编译 ...

  7. 使用ofstream输出unicode

    void saveWideFileHead(std::ofstream& out)// 写入文件内容前,先写入BOM { char const* const utf16head = " ...

  8. Linux入门——shell脚本常用信息小结

    1.shell中的$默认变量    $n           $1 表示第一个参数,$2 表示第二个参数 ...    $#           命令行参数的个数    $0           当前 ...

  9. flex 自定义tooltip

    //flex用例网址 http://thanksmister.com/2012/01/18/flex-chart-datatip-renderer/ http://help.adobe.com/en_ ...

  10. 20155209实验二《Java面向对象程序设计》

    20155209实验二<Java面向对象程序设计> 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计 ...