python 高级函数filter

我曾在不止一篇博客里提及过python的高级函数这个问题,当然网上也有很多的相关示例,今天记录一下关于filter这个函数的一点使用场景。

str_list=['//img14.360buyimg.com/n5/s85x85_jfs/t1/7121/5/4850/249681/5bdc086dE0d08ee7e/65767cb85c91701b.jpg', 
'//img12.360buyimg.com/n5/s85x85_jfs/t13660/244/908634455/116594/90b4ea04/5a166e06N37fd1f80.jpg', 
'//img13.360buyimg.com/n5/s85x85_jfs/t1/1722/26/14622/177790/5bdc077bEff4fa3f0/8731fb913db9d162.jpg', 
'//img12.360buyimg.com/n5/s85x85_jfs/t23962/302/1501171450/183027/6382020c/5b626cf2Na5a20c37.jpg', 
'//img11.360buyimg.com/n5/s85x85_jfs/t1/98999/25/1173/131686/5dba7e95E32c6412e/b674669c4b0bd627.jpg', 
'//img14.360buyimg.com/n5/s85x85_jfs/t1/106804/13/19274/337597/5e9e58fbE9e0c598d/7c676342231e02c9.jpg', 
'//img13.360buyimg.com/n5/s85x85_jfs/t1/99513/12/16100/181356/5e781783Ef30d358e/70e73a6432cb1e27.jpg', 
'//img30.360buyimg.com/n1/jfs/t3217/357/968924034/172389/3287463/57c3af46Nf5765289.jpg', 
'//img30.360buyimg.com/n1/jfs/t3049/306/997060500/142959/94c2cf61/57c3aea5N2907c9a3.jpg', 
'//img30.360buyimg.com/n1/jfs/t8533/240/1924494415/335123/5b8422f/59c096b1Ndb899462.jpg']

如上所示,我想筛选出列表里含有s85xs85的所有元素,生成一个新的列表:可能对于我这种小白来讲,第一想法就是遍历列表,针对每一个元素进行判断,然后把符合的元素放进一个新的列表里,紧接着就是一大段的代码。但是这个小的要求其实很简单,用filter很容易实现。

def filter_pic(link):
    return 's85x85' not in link
new_list=list(filter(filter_pic,str_list))

如上所示,当然我这是筛选出了不含有s85xs85的元素,有人会说为什么要前面加上一个list转化一下,是因为转化之前得到的结果并不是列表的形式(一种类似object的形式),如果我们想要获取到结果就需要用list函数转化一下。

其实重要的不是介绍这个函数有多厉害,而是觉得既然我们了解了这个函数,也能带来简便,那我们就养成去用的习惯,这样也能提升我们代码的简洁性,另外,上面的代码也可以改变一下,不用去定义这个函数了,而是用匿名函数的形式来实现,大家可以自己动手尝试一下,这里不做示例了。

至于其他的高级函数的运用,会在不久以后做一个总结,以便于和大家更好的交流,提升。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值