亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【面試趣談】python的map和 filter

標簽:
Python

​# map() 和 filter()

Python 内置有两个非常好用的高阶函数 map()filter()

filter() 用于从可迭代对象中筛选元素。用法如下:


filter(筛选函数, 可迭代对象)

filter() 依次对 可迭代对象 中的每个元素调用 筛选函数,如果返回值为 True,则当前这个元素会被保留,否则被排除。最终返回一个包含所有被保留元素的迭代器。

显然这里的 筛选函数 可以用 lambda 表达式来创建。

例如,从 ['a', 'b', 'cd', 'efg', 'hig', 'klmn', 'opqr'] 筛选出长度为奇数的字符串。可以这样写:


filter(lambda x: len(x) % 2 == 1, ['a', 'b', 'cd', 'efg', 'hig', 'klmn', 'opqr'])


>>> list(filter(lambda x: len(x) % 2 == 1, [‘a’, ‘b’, ‘cd’, ‘efg’, ‘hig’, ‘klmn’, ‘opqr’]))

[‘a’, ‘b’, ‘efg’, ‘hig’]

这里我们用 list() 将迭代器转换为列表。

map() 用于对可迭代对象中每一个元素逐一作处理。用法如下:


map(处理函数, 可迭代对象)

map()依次对可迭代对象中的每个元素调用处理函数,最终返回一个包含所有被处理过后的元素的迭代器。

显然这里的处理函数也可以用 lambda 表达式来创建。

例如,将['a', 'b', 'cd', 'efg', 'hig', 'klmn', 'opqr']全部转换为大写。可以这样来写:


map(lambda x: x.upper(), ['a', 'b', 'cd', 'efg', 'hig', 'klmn', 'opqr'])


>>> list(map(lambda x: x.upper(), [‘a’, ‘b’, ‘cd’, ‘efg’, ‘hig’, ‘klmn’, ‘opqr’]))

[‘A’, ‘B’, ‘CD’, ‘EFG’, ‘HIG’, ‘KLMN’, ‘OPQR’]

这里我们用 list() 将迭代器转换为列表

总结

map(function,iterable)函数接收两个参数,1、一个函数名,注意不带括号。带括号就变成调用函数了。2、一个或多个序列。序列中的每一个元素被函数作用后的值,返回一个迭代器。可以使用list()将其转换为列表

两个函数的参数是一样的,但是filter有过滤器作用,map对每一个元素进行函数运算。

filter(function,iterable)同样是两个参数,和上面一样。不同的是,序列里每个元素被函数作用后,返回真、假值,对应结果为真的序列元素值将被选出来,最终生成一个迭代器;并且,第一个参数可以是None,如果第一个参数是None,则将第二个参数序列中布尔值为True的元素给筛选出来。

两个函数的参数是一样的,但是filter有过滤器作用,map对每一个元素进行函数运算。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消