9.匿名函数:lambda表达式filter()map()

xiaoxiao2021-02-28  102

匿名函数的好处:

1.简化代码的可读性:由于普通的屌丝函数阅读时经常要 跳到开头def定义部分,使用lanbda函数可以省去这样的步骤 2.省去取名字的问题:对于一些比较抽象并且在整个程序中只调用 一两次的函数,我们可以直接使用匿名函数 3.python写一些执行脚本时,使用lambda就可以省下定义函数过程,比如 说我们只是需要写个简单的脚本来管理服务器时间,我们就不需要专门定义一个函数 然后再写调用,使用lambda就可以使得代码更加简洁。

语法:

格式: lambda 形参 : 函数体 返回值: 返回一个函数的对象 例: >>> lambda x : x*x <function <lambda> at 0x00000000026FFF98> 一般情况下,我们这样使用:先用变量g接受匿名函数 返回的函数对象;然后用变量g去调用函数 >>> g = lambda x : x*x >>> g(2) 4

两个牛逼的BIF

1. filter:过滤器

>>> help(filter) Help on built-in function filter in module __builtin__: filter(...) filter(function or None , sequence) -> list, tuple, or string #filter( 函数 or 无函数, 序列 ) Return those items of sequence for which function(item) is true. #返回使函数为true的序列元素 If function is None, return the items that are true. #如果没有函数,返回序列元素为true的元素 【例1】 >>> filter(None,[1,2,0,[False],False,True]) #无函数None [1, 2, [False], True] >>> filter(None,(False,0)) () 【例2】有函数:返回0-100内的奇数 >>> filter(odd,range(0,100)) [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99] >>> filter(lambda x : x%2 , range(100)) [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]

2. map :映射

>>> map(lambda x:x%2,range(10)) [0, 1, 0, 1, 0, 1, 0, 1, 0, 1] >>> map(lambda x:x*2,range(10)) [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] >>> map(lambda x : x-1 , range(10)) [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8] 解释:把range(10)形成的列表list中的每一个元素依次取出来, 再调用function,最后返回生成序列。
转载请注明原文地址: https://www.6miu.com/read-77384.html

最新回复(0)