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

猜你喜欢

转载自blog.csdn.net/liujingwei8610/article/details/121550191