我是靠谱客的博主 幸福金鱼,最近开发中收集的这篇文章主要介绍python filter内置函数_python中关于内置函数filter的详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这篇文章主要介绍了python 内置函数filter的相关资料,需要的朋友可以参考下

python 内置函数filterclass 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.

# Filterli = ['text_test_text', 'test_text_1', 'text_test_2', '3_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_text_1', 'text_test_2', '3_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_text_1', 'text_test_2', '3_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_text_1', 'text_test_2', '3_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的详解的全部内容,希望文章能够帮你解决python filter内置函数_python中关于内置函数filter的详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部