filter、map、reduce函数怎么在Python中使用
filter、map、reduce函数怎么在Python中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
一、lambda表达式
lambda 只包含一个语句,用于创建匿名函数。
语法:
lambda[arg1[,arg2,.....argn]]:expression
arg1 -- 参数,可以有多个
expression -- 表达式
使用例子:
f1=lambdax:x>10 print(f1(1))#输出:False print(f1(11))#输出:True f2=lambdax,y:x+y print(f2(1,2))#输出:3
二、filter() 函数
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回迭代器对象(Python2是列表),可以使用list()转换为列表。
语法:
filter(function,iterable)
function -- 函数
iterable -- 序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到迭代器对象中。
使用例子:
defisEven(x): returnx%2==0 list1=filter(isEven,[1,2,3,4,5,6]) print(list(list1))#输出:[2,4,6] #可以用lambda list2=filter(lambdax:x%2==0,[1,2,3,4,5,6]) print(list(list2))#输出:[2,4,6] #也可以用列表推导式 list3=list(xforxin[1,2,3,4,5,6]ifx%2==0) print(list3)#输出:[2,4,6]
三、map()函数
map()接收一个函数 f 和一个或多个序列 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 迭代器(Python2是列表) 并返回。
语法:
map(function,iterable,...)
function -- 函数,如果iterable有多个序列,则function的参数也对应有多个
iterable -- 一个或多个序列
使用例子:
defmulti(x): returnx*2 defmulti2(x,y): returnx*y #参数只有1个序列时 list1=map(multi,[1,2,3,4,5]) print(list(list1))#输出:[2,4,6,8,10] #用lambda改写上面语句 list1_1=map(lambdax:x*2,[1,2,3,4,5]) print(list(list1_1))#输出:[2,4,6,8,10] #参数有2个序列时, list2=map(multi2,[1,2,3,4,5],[6,7,8,9,10]) print(list(list2))#对2个列表数据的相同位置元素相乘,输出:[6,14,24,36,50] #用lambda改写上面语句 list2_1=map(lambdax,y:x*y,[1,2,3,4,5],[6,7,8,9,10]) print(list(list2_1))#输出:[6,14,24,36,50] #当2个序列长度不一致时,结果以2个序列中的最短长度为准 list2_2=map(lambdax,y:x*y,[1,2,3],[6,7,8,9,10]) print(list(list2_2))#输出:[6,14,24] list2_3=map(lambdax,y:x*y,[1,2,3,4,5],[6,7,8]) print(list(list2_3))#输出:[6,14,24]
四、reduce()函数
reduce()函数对一个数据集合的所有数据进行操作:用传给 reduce 中的函数 function(必须有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
在Python2中reduce()是内置函数,Pytho3移到functools 模块。
语法:
reduce(function,iterable[,initializer])
function -- 函数,有两个参数
iterable -- 可迭代对象
initializer -- 可选,初始参数
使用例子:
fromfunctoolsimportreduce defadd(x,y): returnx+y defmulit(x,y): returnx*y print(reduce(add,[1,2,3,4,5]))#输出:15 print(reduce(add,[1,2,3,4,5],10))#输出:25 print(reduce(mulit,[1,2,3,4,5]))#输出:120 print(reduce(mulit,[1,2,3,4,5],10))#输出:1200 print(reduce(lambdax,y:x+y,[1,2,3,4,5]))#输出:15 print(reduce(lambdax,y:x+y,[1,2,3,4,5],10))#输出:25
关于filter、map、reduce函数怎么在Python中使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注恰卡编程网行业资讯频道了解更多相关知识。
推荐阅读
-
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中变量的存储原理是什么
-
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
-
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
-
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
-
python怎么实现批量文件加密功能
-
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...
-
python下thread模块创建线程的方法
本篇内容介绍了“python下thread模块创建线程的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来...