文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python 中的filter, map

2023-01-31 02:34

关注

python 中的filtermap, reduce方法解释:

filter:

filter方法调用:

resultlst = filter(func, seq)

@param func: 可调用对象,接受seq中的元素作为参数

@param seq: 可迭代对象,其中每个元素都要被传入func执行一次;

filter的作用:

seq可迭代序列或者对象的每一个元素调用一次func,如果func返回值为True,则将该元素插入返回结果列表。反之,则丢弃;

例如:

a = [1,2,3,4,5]

result = filter(lambda x : x > 3, a)

则返回结果是:[4,5]

 

注意,filterfunc可调用对象必须返回一个具有“bool属性”的值。所谓具有bool属性,即是指该返回值要能够与bool真值进行比较。在python中,几乎所有对象都能够判断真假。filter方法本身返回的是seq元素的列表子集。并非func返回的结果,func只是告诉filterseq中怎么去选取元素构成列表返回(也就是能够使func调用对象返回bool真值的那些元素)

 

map:

map方法调用:

map(func, seq)

@param func: 可调用对象,接受seq中的元素作为参数;

@param seq: 可迭代对象。其中每个迭代元素都会被传入map函数执行一次;

map方法的作用:

seq可迭代对象中的每个元素,作为func参数调用一次, 并把func结果添加到返回列表中;

例如:

a = [1,2, 3,4,5]

resultlst = map(lambda x : x + 1a)

返回结果是:[2,3,4,5,6]

 

假如我们使用filter中同样的lambda表达式来调用a中的元素,即:

a = [1,2, 3,4,5]

resultlst = map(lambda x : x > 3a)

返回结果是:[False,False,Flase,True,True]

 

这就是说,map函数对seq中的每个元素,将一定会有一个与之对应的返回值。这个返回值就是将该元素传递给func后,由func执行返回的结果。

 

 

reduce:

reduce方法调用:

reduce(func, seq [, init])

@param func: 特殊的可调用对象。所谓特殊,是该可调用对象要接受两个参数。

@param seq: 可迭代对象,同样,该对象中的每个元素将会被func处理一次;

@param init: 初始值。

reduce方法的作用:

seq中的从左到右的每两个元素,调用func。然后将本次结果传递到下一次调用。

例如:

a = [1,2,3,4,5]

reduce(lambda x, y : x +y, a)

则返回值为:15

加入我们设定init的值,即:

a = [1,2,3,4,5]

reduce(lambda x, y : x +y, a3)

则返回值为:18

 

注意:传递给reducefunc,必须要能接受两个参数。并返回一个结果。这个结果将会是传递给func进行下次一调用;上面的例子,调用过程是:

1,func(1, 2) 返回 x1

2,func(x1, 3) 返回 x2

3,func(x2, 4) 返回 x3

…...

其实,通过,reducefunc的设计,reduce可以完成mapfilter的功能

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯