关于filter的使用的不理解

关于filter的使用的不理解

http://img1.sycdn.imooc.com//climg/5def98f5090020a805470392.jpg

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那一边的,总体来说就是都不理解啊!求老师解答一下,不懂,嘻嘻~

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好。同学要先弄清楚filter()函数的作用会更容易理解

1、filter():用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。该函数接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。Python3中返回的为filter对象,需要使用list()转换为列表

2、该代码中,filter()会将l列表中的元素传递给函数f()或匿名函数即n的值,若n不能被2整除则返回该元素。因为会得到列表中的奇数

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师