KLIMA中文网

领取MOLI红包

Python3中map(),reduce(),filter()的详细用法

发布日期:2025-01-03 19:13    点击次数:181

前言 Python3中的map()、reduce()、filter() 这3个一般是用于对序列进行操作的内置函数,它们经常需要与 匿名函数 lambda 联合起来使用,我们今天就来学习下。 1.map() map() 可以用于在函数中对指定序列做映射,返回值是一个迭代器,其使用语法如下: 上面的第一个参数 function 指一个函数,第二个参数 iterable 指一个或多个可迭代对象,在执行过程中,会对可迭代对象中的每一个元素调用 function 函数做计算,最后得到一个新的迭代器对象,而这个新的迭代器对象,会包含有每次调用 function 函数的返回值。 只传入一个可迭代对象: 传入多个可迭代对象 2.filter() filter() 可以用于过滤序列,过滤掉不符合条件的元素,返回值也是一个迭代器,其使用语法如下: 和 map() 函数类似,上面的第一个参数 function 指一个函数,第二个参数 iterable 指一个可迭代对象,执行后会得到一个包含每次调用 function 函数返回值的迭代器。 针对 map() 和 filter() 函数, 这里有 2 点需要注意: map 中必须传入一个正常函数,而在 filter 函数中则可以传正常函数或者None,当传入None时,只返回可迭代对象中所有符合 true 的值map 中支持传多个可迭代对象,而在 filter 函数中则只能传一个可迭代对象 3.reduce() reduce() 可以用于对参数序列中的元素进行累积,返回的是一个值。 在 Python3 中,reduce() 已被从全局名字空间里移除了,如果想要使用它,那么需通过引入 functools 模块来调用 reduce() 函数, 其使用语法如下: 上面的第一个参数 function 指一个函数,并且该函数必须含有2个参数,第二个参数 sequence 指一个序列,第三个参数 initial 指初始值,默认是None。 例如存在函数:reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]),它就相当于 ((((1+2)+3)+4)+5)。 上面的 map()、reduce()、filter() 都是属于Python3中的高阶函数,它们最大的好处在于可以让代码更加简洁,当然,如果不使用它们,我们也可以通过其他方式来实现。 到此这篇关于Python3中map(),reduce(),filter()的详细用法的文章就介绍到这了,更多相关Python map(),reduce(),filter()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!




Powered by KLIMA中文网 @2013-2022 RSS地图 HTML地图

Copyright Powered by365站群 © 2013-2024