下面代码简单举例介绍以下 lambda的用法。

from functools import reduce

#1 python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量。
#2 python lambda它只是一个表达式,而def则是一个语句。
#匿名函数lambda
num = lambda x,y : x+y print("lambda")
print(num(3,4)) #上面的代码可以使用 def 定义函数实现 def add(x,y):
return x+y
print("def")
print(add(3,4)) '''
由上例可以看出
lambda的一般形式是关键字lambda后面跟一个或多个参数,
紧跟一个冒号,以后是一个表达式。
lambda是一个表达式而不是一个语句。
它能够出现在Python语法不允许def出现的地方。作为表达式,
lambda返回一个值(即一个新的函数)。
lambda用来编写简单的函数,而def用来处理更强大的任务。 ''' #lambda 使用举例
#python2 的用法
'''
#python2 是如下写法,但是python 3中修改了写法。见如下写法
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27] #
print(filter(lambda x: x % 3 == 0, foo))
#--[18, 9, 24, 12, 27]
map_list = list()
print(map(lambda x: x * 2 + 10, foo))
#--[14, 46, 28, 54, 44, 58, 26, 34, 64]
print(reduce(lambda x, y: x + y, foo))
''' #python 3 的用法
#Python中,也有几个定义好的全局函数方便使用的,filter, map, reduce   foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
num_list = list(filter(lambda x: x % 3 == 0, foo))
print(num_list)
#--[18, 9, 24, 12, 27]
map_list = list(map(lambda x: x * 2 + 10, foo))
print(map_list)
#--[14, 46, 28, 54, 44, 58, 26, 34, 64] '''
reduce函数:
在Python 3里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里 用的话要 先引
入:
'''
print(reduce(lambda x, y: x + y, foo)) # 下面的代码主要是为了 体现lambda 的其他用法,可以传递参数。而不使用的时候 不能传递参数 # Button(top, text="计算", command=lambda: on_click(top, base_text)).pack()
# top.mainloop() # 这种 直接command = 方法名的方式,函数是不能传递参数的,所以为了能传递参数使用了上面的方法。
# Button(top, text="计算", command= on_click).pack()

Python Lambda 的简单用法的更多相关文章

  1. python lambda表达式简单用法【转】

    python lambda表达式简单用法 1.lambda是什么? 看个例子: g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2) >>& ...

  2. python lambda表达式简单用法

    习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: 1 2 3 4 5 6 7 8 # 普通条件语句 if 1 == 1:     name = 'wupeiqi' else ...

  3. python timeit模块简单用法

    timeit模块提供了一种简便的方法来为Python中的小块代码进行计时. 模块调用函数,stmp为要测试的函数,setup为测试环境,number为运行次数 timeit.timeit(stmt=) ...

  4. python lambda匿名函数 用法

    语法 lambda argument_list: expression argument_list是参数列表 expression是一个关于参数的表达式.表达式中出现的参数需要在argument_li ...

  5. python,os.path简单用法

    #首先导入os包 import os#引入time模块是因为需要将浮点型的时间转为东八区时间 import time # basename(path),去掉路径名称,单独返回文件名 f = os.pa ...

  6. [Python]字典的简单用法

    Python中的字典与现实中字典类似,从字典中可以找到“鱼”字:鱼类是体被骨鳞.以鳃呼吸.通过尾部和躯干部的摆动以及鳍的协调作用游泳和凭上下颌摄食的变温水生脊椎动物.类比到Python的字典中,把“鱼 ...

  7. python 虚拟环境 venv 简单用法

    Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替Python之前的virtualenv.该venv模块提供了创建轻量级“虚拟环境”,提供与系统Python的隔离支持.每一个虚拟环 ...

  8. Python - Django - Cookie 简单用法

    home.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  9. python模块turtle简单用法

    ##初始化turtle:t = turtle.Turtle() 或者 t = turtle.Pen()##查询turtle状态#位置t.position() #箭头朝向,箭头朝向按照顺时针或者逆时针偏 ...

随机推荐

  1. nginx 安装echo模块

    学习资源: https://www.cnblogs.com/xwupiaomiao/p/7997938.html https://blog.csdn.net/hb1707/article/detail ...

  2. jetty中war包解压路径

    这是个很奇怪的问题,如果下载好了jetty直接放入war包运行,项目会被解压到C盘的临时文件夹中.但是如果你在${JETTY_HOME}文件夹,也就是jetty解压后的根目录中新建,注意是新建一个wo ...

  3. 中小公司的Java工程师应该如何逆袭冲进BAT?

    (1)80% Java工程师都有的迷茫 这篇文章,跟大家聊一聊很多很多很多人问我的一个问题:中小公司的Java工程师应该如何规划准备,才能跳槽进入BAT这类一线互联网公司? 之所以我用了三个 “很多” ...

  4. Models-详细操作

    # 单表简单查询13种方法 1.all(): 查询所有结果 all: models.表名.objects.all() book_all=models.Book.objects.all() # 结果是q ...

  5. C# 结构体集合元素属性不可修改疑惑

    背景:用C#的人都知道结构体在C#中是值类型的,由于这个原因出现了一个有趣的问题,那就是结构体集合通过数字索引修改对应属性的值能不能影响到集合中的结构体呢?答案很多人可能会说不能,因为结构体是值类型的 ...

  6. MyBatis多表映射demo

    三个实体类,作者.文章和评论. public class Author { private int id; private String username; private String nickna ...

  7. 2017年排名前15的数据科学python库

    2017年排名前15的数据科学python库 2017-05-22 Python程序员 Python程序员 Python程序员 微信号 pythonbuluo 功能介绍 最专业的Python社区,有每 ...

  8. leetcode682

    class Solution { public: int calPoints(vector<string>& ops) { stack<int> ST; ; for ( ...

  9. 英语单词state和status的区别

    state:比较常用,各种状态都可以用它,但是它更着重于一种心理状态或者物理状态. Status:用在人的身上一般是其身份和地位,作"状态,情形"讲时,多指政治和商业. state ...

  10. 使用axis2进行WebService的开发

    使用axis2进行WebService的开发 Apache Axis2 是 Apache Axis SOAP 项目的后继项目.此项目是 Web 服务核心引擎的重要改进,目标是成为 Web 服务和面向服 ...