python学习笔记10-匿名函数lambda

匿名函数lambda

定义匿名函数

lambda

def fun(x,y):

return x*y

r=lambda x,y: x*y

r(3,4)

In [2]: r = lambda x, y: x *y
In [3]: r(3,4)
Out[3]: 12

lambda基础

lambda语句中,冒号前是参数,可以有多个,逗号隔开,冒号右边是返回值

lambda语句构建的其实是一个函数的对象

lambda匿名函数的优点:

1、使用python写一写脚本的时候,使用lambda可以省去定义函数的过程,让代码更加精简

2、对于一些抽象的,不会别别的地方再重复使用的函数,有时候函数起个名字也是难题,使用lambda不需要考虑命名的问题

3、使用lambda在某些时候让代码更容易理解


reduce的用法:

就是通过function()函数去处理sequence序列,reduce内部的function()必须是二元的计算,二元加减乘除

reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates处理过程: ((((1+2)+3)+4)+5)

help(reduce)

reduce(...)
    reduce(function, sequence[, initial]) -> value  
    
    Apply a function of two arguments cumulatively to the items of a sequence,
    from left to right, so as to reduce the sequence to a single value.
    For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates
    ((((1+2)+3)+4)+5).  If initial is present, it is placed before the items
    of the sequence in the calculation, and serves as a default when the
    sequence is empty.
(END)

In [8]: def add(x,y):
   ...:     return x+y
   ...: 

In [9]: reduce(add,range(1,101)) #  1+2+3+4+5+......100=5050
Out[9]: 5050

In [10]: reduce(lambda x,y:x+y,range(1,101))#  1+2+3+4+5+......100=5050
Out[10]: 5050

In [11]: reduce(lambda x,y:x*y,range(1,6)) # 5*4*3*2*1
Out[11]: 120
时间: 2024-10-14 04:48:35

python学习笔记10-匿名函数lambda的相关文章

Python学习笔记010——匿名函数lambda

1 语法 my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1 arg1.arg2:参数 arg1 + arg2 + 1 :表达式 2 描述 匿名函数不需要return来返回值,表达式本身结果就是返回值. lambda 仅简洁了代码,并不会提高程序运行效率 如果可以用 for...in...if 来完成的,最好不使用匿名函数lambda 使用lambda时,函数内不要包含循环.嵌套:如果存在,则最好使用def函数来完成,这样的代码可读性和复用性均较高 l

python学习笔记(03):函数

默认参数值:   只有在行参表末尾的哪些参数可以有默认参数值,即 def func(a, b=5 )#有效的 def func( a=5,b )#无效的 关键参数: #!/usr/bin/python # Filename: func_key.py def func(a, b=5, c=10): print 'a is', a, 'and b is', b, 'and c is', c func(3, 7) func(25, c=24) func(c=50, a=100) #输出: $ pyth

python学习笔记4-内置函数、匿名函数、json处理

print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真 print(any([0,1,2,3,4]))#判断可迭代的对象里面的值是否有一个为真 print(bin(10))#十进制转二进制 print(bool('s'))#把一个对象转换成布尔类型 print(bytearray('abcde',encoding='utf-8'))#把字符串变成一个可修改的bytes print(callable('aa'))#判断传入的对象是否可调用 print(chr(10))#打印

Python 学习笔记 -- 内嵌函数、闭包、匿名函数、高阶函数map、高阶函数filter、高阶函数reduce

1 #------------------------------内嵌函数------------------------------ 2 #内嵌函数就是在函数内部定义函数 3 #实例一 4 print("#------------------------------内嵌函数------------------------------") 5 def funOutOne(): 6 x = 5 7 def funIn(): 8 x = 3 9 print("My funOutO

Python学习笔记总结(二)函数和模块

一.函数 函数的作用:可以计算出一个返回值,最大化代码重用,最小化代码冗余,流程的分解. 1.函数相关的语句和表达式 语句        例子 Calls        myfunc(‘diege','eggs',meat=‘lit’) #使用函数 def,return,yield      def adder(a,b=1,*c):                        return a+b+c[0] global        changer():                 gl

Python学习笔记七:函数

1. 定义一个函数 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数.参数值和参数名称是按函数声明中定义的的顺序匹配起来的. 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明. 函数内容以冒号起始,并且缩进. Return[expression]结束函数,选择性地返回一个值给调用方.不带表达式的return相当于返回 None. 1 def functionname( parameters ): 2 "函数_文档字符串" 3 function_suite

Python学习笔记4(函数与模块)

1.Python程序的结构 Python的程序由包(package).模块(module)和函数组成. 模块是处理一类问题的集合,由函数和类组成. 包是由一系列模块组成的集合.包是一个完成特定任务的工具箱. 2.函数 2.1函数的定义 def sayHello(): print 'Hello World!' # block belonging to the function sayHello() 2.2函数的参数Python中任何东西都是对象,所以参数只支持引用传递的方式.Python通过名称绑

Python学习笔记10

? 1.函数式编程 ? 理论就来自lambda演算,虽然没有学过lisp,一直被其大名震撼. 特性: 函数是以一等公民 可以作为参数 可以作为返回值 具有闭包特性 ? 1.1参数传递方式 一般参数传递:值传递,引用传递 命名参数传递,使用"参数名=值"的格式,Python内成为关键字参数(keyword argument) 默认参数设置 可变参数,使用*开头,被解析成为一个元组 可变参数,使用**开头,被解析成为一个字典,必须使用关键字参数的方式 在调用的时候如何加上*,则会被解成元组

python学习笔记5-自定义函数

1 自定义函数  (1)函数代码块以def关键字开头,然后函数标识符名称和圆括号  (2)任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数  (3)函数的第一行语句可以选择性的使用文档字符串用于存放函数说明  (4)函数内容以冒号开始 并且缩进  (5)return[expression]结束函数 选择性的返回一个值给调用方 不带  表达式的return相当于返回none 2 基本的定义和调用 1 #自定义函数 2 ''' 3 def functionname( paramet