匿名函数

匿名函数与内置函数

匿名 (未验证) 提交于 2019-12-02 23:48:02
匿名函数 fun = lambda x : x*2 print(fun) print(fun(2)) >>> <function <lambda> at 0x10b9197a0> >>> 4 说明: fun ->函数名 lambda ->相当于定义函数的def, 匿名函数的定义就用lambda x -> 匿名函数的形参 x * 2 ―> 匿名函数返回值 匿名函数的特点:临时存在,用完就没了 匿名函数的应用:一般与内置函数一起连用。 name_list = ['jason', 'tank', 'egon'] salary_list = [100, 200, 300] dic = {k:v for k, v in zip(name_list, salary_list)} #找出dic中工资最高的那个人的人名 print(max(dic, key=lambda name: dic[name])) >>>egon 内置函数 filter: class filter(object): """ filter(function or None, iterable) --> filter object Return an iterator yielding those items of iterable for which function(item) is true. If function

day15 匿名函数及常用内置函数

匿名 (未验证) 提交于 2019-12-02 23:32:01
""" 今日内容: 1、生成器的send方法 2、递归函数 3、匿名函数 4、匿名函数的应用 5、常用的内置函数 """ """ # 1、生成器的send方法 -- 在使用yield方法创建生成器时,不仅可以使用next方法进行取值,还可以通过send方法向生成器的内部传值 -- 什么是send方法? -- send方法相当于高级的next方法,send方法不仅可以通过yield方法取出生成器中的值,还可以向生成器中传值 -- send方法的工作步骤: -- 由于生成器在执行过程中,不会直接执行,当使用next方法进行取值时才会执行,当遇到yield关键字时停止,并把yield中的值传递出来 -- 首先,send方法会将外界的值传递进生成器内部,在由生成器中相应的变量进行接收 -- 然后,生成器会向下执行,直到遇到下一个yield停止,并将yield后面的值返回出来 --> 相当于next方法 -- 需要注意的是,由于生成器不会自动运行,只有在遇到next时才会向下执行,所以在遇到第一个yield之前不能使用send向生成器中传递值,或者只能传递None # 案例: persons = ['张三', '李四', '王五', '赵六', '钱七'] def order(persons): for i in range(len(persons)): if i == 0: print('

python匿名函数以及常用内置方法

匿名 (未验证) 提交于 2019-12-02 22:54:36
abs() 求一个数字的最大值 bytes() 将一个字符串转换成一个bytes类型 bool()给出一个数据的布尔值 zip()将两个可迭代的数据每一次next取出一个数据将两者拼接成一个个的小元组 chr()将一个Ascll码转换成为一个对应的字符 ord()chr的反向操作 otc()讲一个十进制数字转换成八进制数字 bin()将一个十进制数字转换成二进制数字 hex() 讲一个十进制数字转换成十六进制数字 list()讲一个可迭代对象里面的值一个个取出生成一个列表 __import__()与import不同的是该方法可以将字符串代表的模块名导入程序例如 x = __import('time') eval()可以将一个字符串中的列表字典等数据提取出来 open()用于建立一个文件的读取管道 dir()获取模块中的方法名 help()获取函数中的注释 type()查看数据类型 匿名函数: 文章来源: python匿名函数以及常用内置方法

python语言(五)匿名函数、读写excel、操作数据库、加密、redis操作

匿名 (未验证) 提交于 2019-12-02 22:51:30
一、匿名函数 递归、就是调用自己 1 def func(): 2 num = int(input('num:')) 3 if num % 2 ==0: 4 print('是偶数') 5 return 6 else: 7 func() 8 func() # 递归最多循环999次 匿名函数 lambda 1 f = lambda x,b:str(x+b) 2 result = f(1,2) 3 print(f) 二、读写excel 1 import xlwt 2 book = xlwt.Workbook() 3 sheet = book.add_sheet('sheet1') 4 sheet.write(0,0,'名字') 5 sheet.write(1,0,'张三') 6 sheet.write(2,0,'李四') 7 sheet.write(3,0,'王五') 8 9 sheet.write(0,1,'手机号') 10 sheet.write(1,1,'18235437789') 11 sheet.write(2,1,'13875437919') 12 sheet.write(3,1,'18645438531') 13 14 book.save("students.xls") 15 16 stus=[ 17 [ 18 "id", 19 "name", 20 "sex", 21

python匿名函数

匿名 (未验证) 提交于 2019-12-02 22:51:30
匿名函数就是没有名字的函数,它定义的关键字是lambda,之后是一系列的参数,然后用冒号隔开,最后则是由这些参数组成的表达式。 lambda x : x ** 2 #定义 ( lambda x : x ** 2 )( 3 )#调用 结果: 9 foo = lambda x , y :( x + y )** 2 #不建议这样用,这样建议使用普通函数 foo ( 1 , 2 ) 结果为: 9 def foo ( x , y ): return ( x + y )** 2 foo ( 1 , 2 ) 结果: 9 匿名函数定义的时候,参数不需要小括号,之间逗号之间隔开就好了,后面的冒号用来分割开参数和表达式,同时,它不需要return,表达式的值就是匿名函数的返回值。 lambda表达式只能写在一行上面,被称为单行函数,在高阶函数传参时,用匿名函数, 往往能简化代码。 lambda也可以用在列表内部。 [( lambda x : x * x )( x ) for x in range ( 10 )] 结果为: [ 0 , 1 , 4 , 9 , 16 , 25 , 36 , 49 , 64 , 81 ] a = [( 1 , 20 ),( 3 , 0 ),( 9 , 10 ),( 2 ,- 1 )] a . sort ( key = lambda x : x [ 1 ])

java8 lambda 表达式详解

匿名 (未验证) 提交于 2019-12-02 21:52:03
lambada 表达式实质上是一个匿名方法,但该方法并非独立执行,而是用于 实现由函数式接口定义的唯一抽象方法 使用 lambda 表达式时,会创建实现了函数式接口的一个匿名类实例 可以将 lambda 表达式视为一个对象,可以将其作为参数传递 1. 函数式接口 函数式接口是仅含一个抽象方法的接口,但可以指定 Object 定义的任何公有方法。 以下是一个函数式接口: 1 @FunctionalInterface 2 public interface IFuntionSum<T extends Number> { 3 T sum(List<T> numbers); // 抽象方法 4 } 以下也是一个函数式接口: 1 @FunctionalInterface 2 public interface IFunctionMulti<T extends Number> { 3 void multi(List<T> numbers); // 抽象方法 4 5 boolean equals(Object obj); // Object中的方法 6 } 但如果改为以下形式,则不是函数式接口: 1 @FunctionalInterface 2 public interface IFunctionMulti<T extends Number> extends IFuntionSum<T> { 3

Python【外】第一节 map()和匿名函数的配合使用

放肆的年华 提交于 2019-12-02 19:15:34
Python【外】第一节 map()和匿名函数的配合使用 map()函数 map函数使用语法如下: map(fun, iterable, ...) 功能: map() 会根据提供的函数fun对指定序列iterable,...做映射。 具体实现方式: 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回每次调用之后产生的结果形成的序列。 举例 def add_cu(xx, yy): xx + yy if __name__ == "__main__": aa = [1,2,3,4] bb = [1,2,3,4] res = map(add_cu, aa, bb) 上述返回的结果就[2, 4, 6, 8] 需要注意的是 在python2中, map()会直接返回一个列表。 在python3中, map()返回的是列表对应的iterator,因此要得到列表内的具体的值, 需要在iterator外面套一层list() lambda lambda使用语法如下: lambda x, y,..., z: 表达式 说明: lambda后面的x,y,...,z是函数的参数, 后面的表达式是前面参数的相互的作用。 实际举例如下: 可以看到, 是可以给lambda指定一个函数名,调用方式和普通的函数是一致的。 fu = lambda x,y: x + y res =

Python函数作用域和匿名函数

老子叫甜甜 提交于 2019-12-02 15:43:00
匿名函数的定义 全局变量和局部变量的概念 global(全局变量)和 nonlocal(局部变量) 闭包、递归、回调 匿名函数 匿名函数 lambda 语法规则:lambda 参数 : 表达式 函数作用域 函数内部 函数内部的变量,作用域只在函数内部,函数内部不可以直接更改函数外部的变量 global(全局变量) 函数内部如果需要改变全局变量,就需要使用global修饰变量 nonlocal(局部变量) 在函数嵌套函数的情况下,同样也有函数作用域的问题,但是python3中提供了方便,只需要使用nonlocal就可以在里层函数内部修改外部函数变量 闭包 函数里面嵌套函数,外层函数返回里层函数,这种情况称之为闭包 闭包是概念,不是某种函数类型,和递归的概念类似,就是种特殊的函数调用 闭包可以得到外层函数的局部变量,是函数内部和函数外部沟通的桥梁 递归和回调函数 递归 函数可以自身调用自身,但是使用时类似于条件循环一样,要有递归的终止条件 使用递归时,可以让代码更加简洁 但递归会占用比较多的内存,当递归次数比较多时,性能就会降低,不建议多使用递归 回调 自身是一个函数,只是被传入到另一个函数当中,供其调用 回调函数不一定会被调用,是否调用由被传入函数的内部逻辑决定 来源: https://www.cnblogs.com/jiyu-hlzy/p/11752258.html

重学JavaScript之匿名函数

梦想的初衷 提交于 2019-12-02 14:58:25
1. 什么是匿名函数? 匿名函数就是没有名字的函数,有时候也称为《 拉姆达函数 》。匿名函数是一种强大的令人难以置信的工具。如下: function a(a1, a2, a3) { // 函数体 } ==其他函数表达式== var a = function(a1, a2, a3) { // 函数体 } 以上两个例子在逻辑上等价,其主要的区别是: 前者会在代码执行前被加载到作用域中,而后者则是在代码执行到那一行的时候才会有定义。另一个重要的区别就是: 函数声明会给函数一个指定的名字 ,而函数表达式则是: 创建一个匿名函数,然后将这个匿名函数赋给一个变量。 function(a1, a2, a3) { // 函数体 } 上面例子也是完全可以的,但是却无法调用这个函数,因为没有指向这个函数的指针,但是可以将这个函数作为参数传入另外一个函数,或者从一个函数中返回另一个函数时就可以使用这种形式来定义匿名函数。 2. 递归 递归函数是在一个函数通过名字调用自身的情况下构成的 function f(num) { if (num <= 1) { retrun 1 } else { return num * f(num - 1) } } 以上,这是一个经典的递归阶乘函数,表面上没有任何问题,但是却会被以下代码导致出错: var a = f f = null console.log(a(4) //