您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python 内置函数filter

5b51 2022/1/14 8:17:00 python 字数 3233 阅读 333 来源 www.jb51.cc/python

python内置函数filter classfilter(object): \"\"\" filter(functionorNone,iterable)-->filterobject Returnaniteratoryieldingthoseitemsofiterableforwhichfunction(item)

概述

python 内置函数filter

class filter(object):
 """
 filter(function or None,iterable) --> filter object
 
 Return an iterator yielding those items of iterable for which function(item)
 is true. If function is None,return the items that are true.
 """

filter(func,iterator)

    func:自定义或匿名函数中所得值是布尔值,true将保留函数所取到的值,false则取反。
    iterator:可迭代对象。

例:

     过滤列表['text_test_text','test_text_1','text_test_2','3_test_text','test_test']
     只要含有text字符串及将其取出 or 取反。

s.rfind'text'+1

     python3中 rfind() 返回字符串最后一次出现的位置,如果没有匹配项则返回-1。
     数字中0是false,0以上的整数都是true,所以s.rfind'text'后会有+1,没找到字符及-1+1=0.

# Filter

li = ['text_test_text','test_test']

# 认保留函数所取到的值
print(list(filter(lambda s: s.rfind('text') + 1,li)))
# 取反,下三个例子是一样的
print(list(filter(lambda s: not s.rfind('text') + 1,li)))

# Noe 自定义函数

l1 = ['text_test_text','test_test']


def distinguish(l):
 nl = []
 for s in l:
  if s.rfind("text") + 1:
   nl.append(s)
 return nl


print(distinguish(l1))

# Two 自定义高阶函数

l2 = ['text_test_text','test_test']


def f(s):
 return s.rfind('text') + 1


def distinguish(func,array):
 nl = []
 for s in array:
  if func(s):
   nl.append(s)
 return nl


print(distinguish(f,l2))

# Three 匿名函数

l3 = ['text_test_text','test_test']


def distinguish(func,array):
 nl = []
 for s in array:
  if func(s):
   nl.append(s)
 return nl

print(distinguish(lambda s: s.rfind('text') + 1,l3))

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持

总结

以上是编程之家为你收集整理的python 内置函数filter全部内容,希望文章能够帮你解决python 内置函数filter所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶