四个python重要的内置方法,函数(filter,map,reduce,lambda)
程序员文章站
2022-03-03 19:13:43
文章目录一、map 方法(函数)二、filter 方法(函数)三、reduce 方法(函数)四、lambda 方法(函数)****提醒****一、map 方法(函数)map():用于对某个自定义函数进行多次遍历的方法,或可以说是将某一实参序列按顺序逐项传递给某自定义函数(可改变运算结果),最后将函数运算结果制作成一个map object迭代器,并将迭代器返回。例如:str = ['a','b','c','d']def fun1(s): return s + "alvin"ret =...
一、map 方法(函数)
map():用于对某个自定义函数进行多次遍历的方法,或可以说是将某一实参序列按顺序逐项传递给某自定义函数(可改变运算结果),最后将函数运算结果制作成一个map object迭代器,并将迭代器返回。
例如:
str = ['a','b','c','d'] def fun1(s): return s + "alvin" ret = map(fun1, str) #将序列str逐项传入fun1函数 print(ret) # map object的迭代器 print(list(ret)) # ret是一个迭代器对象
输出:
<map object at 0x000001E899564250> #返回的该map类型迭代器的地址 ['aalvin', 'balvin', 'calvin', 'dalvin']
二、filter 方法(函数)
filter():用于对某个自定义函数进行多次遍历的方法,或可以说是将某一实参序列按顺序逐项传递给某自定义函数(不可改变运算结果),最后将函数运算结果制作成一个filter object迭代器,并将迭代器返回。
例如:
str = ['a', 'b', 'c', 'd'] def fun1(s): #过滤器方法 if s != 'a': return s
ret = filter(fun1, str) print(ret) print(list(ret))
输出:
<filter object at 0x0000024F61C94250> #返回的该filter类型迭代器的地址 ['b', 'c', 'd']
不可改变运算结果,例如:
同上述map()函数代码:
str = ['a', 'b', 'c', 'd'] def fun1(s): return s + "alvin" ret = filter(fun1, str) print(ret) # map object的迭代器 print(list(ret)) #与map()对比: #str = ['a', 'b', 'c', 'd'] #def fun1(s): # return s + "alvin" #ret = map(fun1, str) #将序列str逐项传入fun1函数 #print(ret) # map object的迭代器 #print(list(ret)) # ret是一个迭代器对象
输出:
<filter object at 0x0000024C36A64250> ['a', 'b', 'c', 'd'] #与map()对比: #<map object at 0x000001E899564250> #['aalvin', 'balvin', 'calvin', 'dalvin']
三、reduce 方法(函数)
reduce():用于对某个自定义函数进行多次遍历的方法,或可以说是将某一实参序列按顺序逐项传递给某自定义函数,并返回一个值。不同点见下方代码。
例如:
from functools import reduce def add1(x, y): return x+y print(reduce(add1, range(1, 10))) #1加到10 print(reduce(add1, [1,2,3,4,5,6,7,8,9])) #解释range()在reduce方法中的调用形式 #此时reduce只有两个参数,每次将调用第二个参数(序列)的前两个元素传入add1中进行运算,将运算结果返回,运算结果将与下一元素一同传入add1再进行运算,以此类推直到第二参数(序列)末尾。 print(reduce(add1, range(1, 10),10))
输出:
45 55
四、lambda 方法(函数)
lambda():又称匿名函数,本身作用一般,需要与上述三种方法配合使用。
例如:
add = lambda a,b : a+b # lambda a,b : a+b # a,b为参数,冒号后为代码块 print add(2,3)
利用lambda()方法与reduce()方法结合计算阶乘:
from functools import reduce print (reduce(lambda x,y: x*y, range(1,6))) #计算5的阶乘
输出:
120
提醒
合理结合使用四种函数,可在必要之时,减少大量代码的编写
本文地址:https://blog.csdn.net/qq_41725460/article/details/109057738
推荐阅读
-
Python中map,reduce,filter和sorted函数的使用方法
-
Python的lambda表达式、filter、map、reduce等函数的用法
-
Python的lambda表达式、filter、map、reduce等函数的用法
-
python中几个常用函数的正确用法-lambda/filter/map/reduce
-
四个python重要的内置方法,函数(filter,map,reduce,lambda)
-
Python中map,reduce,filter和sorted函数的使用方法
-
Python零基础入门之八lambda的表达式和filter、map内置函数
-
Python中map,reduce,filter和sorted函数的使用方法
-
python中几个常用函数的正确用法-lambda/filter/map/reduce
-
Python零基础入门之八lambda的表达式和filter、map内置函数