关于filter的使用的不理解
def f(n):
return n % 2 != 0
def cok(l):
"""
:param l:
:return:
"""
# rest = filter(lambda n : n % 2 != 0,l)
rest = filter(f,l)
return rest
if __name__ == '__main__':
l = [1,2,3,4,5,6,7,8,9,10,11,12,13]
r = cok(l)
print(list(r))
老师,这一段,都不太理解其中的意思,特别是 rest = filter(lambda n : n % 2 != 0,l)这一句的意思不太懂,当l这个列表传进来,到这个地方之后,是怎么将l的值传给n这个参数的,然后是如何打印出来的???
以及最上面的def那一边的,总体来说就是都不理解啊!求老师解答一下,不懂,嘻嘻~
正在回答
同学,你好。同学要先弄清楚filter()函数的作用会更容易理解
1、filter():用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。该函数接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。Python3中返回的为filter对象,需要使用list()转换为列表
2、该代码中,filter()会将l列表中的元素传递给函数f()或匿名函数即n的值,若n不能被2整除则返回该元素。因为会得到列表中的奇数
如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星