Python的过滤函数filter()

选择题

以下python代码的输出结果是什么?
def func(n):
        if n % 3 == 0:
                return True
        return False
list1=[1,2,3,4,5,6,7,8,9]
list2=filter(func,list1)
print(list2)
newlist=list(list2)
print(newlist)

选项:
A [2,4,6,8]
B [3,6,9]
C [1,2,4,5,7,8]
D [1,3,5,7,9]
欢迎大家转发,一起传播知识和正能量,帮助到更多人。期待大家提出宝贵改进建议,互相交流,收获更大。辛苦大家转发时注明出处(也是咱们公益编程交流群的入口网址),刘经纬老师共享知识相关文件下载地址为:http://liujingwei.cn

问题解析
python的filter()函数:
1.filter()函数的功能是:根据指定的条件过滤一个序列中不符合条件的元素。
2.filter()函数的语法为:filter(function,iterable),该方法接收两个参数,第一个参数为函数,函数的返回值为True或False,第二个参数为序列,序列的每个元素作为参数依次传递给函数,判断返回值为True或False,最后将返回True的元素放到新列表中。
3.注意:该函数在Python2.7返回的是列表,在Python3中返回的是一个filter对象,如果要转换为列表,可以使用list()来转换。
题目中: 首先定义了函数func(n),如果参数n为3的倍数,返回True,否则返回False。list1=[1,2,3,4,5,6,7,8,9]中每个元素n经过func(n)函数的条件过滤后,符合条件(是3的倍数)的元素为:3,6,9。在python3环境下,filter函数返回的是filter对象,所以list2是一个filter对象,需要经过newlist=list(list2)数据类型转换后,才能得到newlist列表[3,6,9]。

答案
正确答案是:B

温馨期待
期待大家提出宝贵建议,互相交流,收获更大,助教:qmy

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘经纬老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值