python中的filter函数怎么用

 我来答
育知同创教育
2017-08-19 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数:
def is_odd(x):
return x % 2 == 1

然后,利用filter()过滤掉偶数:
>>>filter(is_odd, [1, 4, 6, 7, 9, 12, 17])

结果:
[1, 7, 9, 17]

利用filter(),可以完成很多有用的功能,例如,删除 None 或者空字符串:
def is_not_empty(s):
return s and len(s.strip()) > 0
>>>filter(is_not_empty, ['test', None, '', 'str', ' ', 'END'])

结果:
['test', 'str', 'END']

注意: s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。
当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' '),如下:
>>> a = ' 123'
>>> a.strip()
'123'
>>> a = '\t\t123\r\n'
>>> a.strip()
'123'
练习:
请利用filter()过滤出1~100中平方根是整数的数,即结果应该是:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
方法:
import math
def is_sqr(x):
return math.sqrt(x) % 1 == 0
print filter(is_sqr, range(1, 101))

结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
魘传说
2023-05-07 · TA获得超过1116个赞
知道小有建树答主
回答量:1641
采纳率:88%
帮助的人:117万
展开全部
在 Python 中,filter() 函数是一个内置函数,用于从列表中筛选出满足特定条件的元素。该函数接受一个函数作为参数,该函数接受列表中的元素作为输入,并返回一个布尔值。filter() 函数会返回一个包含所有满足条件的元素的列表,同时也会返回空列表 (即列表中所有元素均为 False) 或包含所有元素的列表 (即所有元素均为 True)。
例如,以下代码使用 filter() 函数筛选出列表中所有长度为 3 的元素:
Copy codemy_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered_list = filter(lambda x: len(x) == 3, my_list)
print(filtered_list)

这将输出 [3, 4, 6, 7, 9],因为这些元素的长度为 3。
filter() 函数还可以使用高阶函数的方式来调用。例如,可以使用 filter() 函数来筛选出列表中所有奇数的列表:
Copy codemy_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_list = filter(lambda x: x % 2 == 0, my_list)
odd_list = filter(lambda x: x % 2 != 0, my_list)
print(even_list)
print(odd_list)

这将输出 [1, 3, 5, 7, 9] 和 [2, 4, 6, 8, 10],因为这些元素是奇数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式