python 内置函数filter
python内置函数filter
classfilter(object): """ filter(functionorNone,iterable)-->filterobject Returnaniteratoryieldingthoseitemsofiterableforwhichfunction(item) istrue.IffunctionisNone,returntheitemsthataretrue. """
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_text_1','text_test_2','3_test_text','test_test']
#默认保留函数所取到的值
print(list(filter(lambdas:s.rfind('text')+1,li)))
#取反,下三个例子是一样的
print(list(filter(lambdas:nots.rfind('text')+1,li)))
#Noe自定义函数
l1=['text_test_text','test_text_1','text_test_2','3_test_text','test_test']
defdistinguish(l):
nl=[]
forsinl:
ifs.rfind("text")+1:
nl.append(s)
returnnl
print(distinguish(l1))
#Two自定义高阶函数
l2=['text_test_text','test_text_1','text_test_2','3_test_text','test_test']
deff(s):
returns.rfind('text')+1
defdistinguish(func,array):
nl=[]
forsinarray:
iffunc(s):
nl.append(s)
returnnl
print(distinguish(f,l2))
#Three匿名函数
l3=['text_test_text','test_text_1','text_test_2','3_test_text','test_test']
defdistinguish(func,array):
nl=[]
forsinarray:
iffunc(s):
nl.append(s)
returnnl
print(distinguish(lambdas:s.rfind('text')+1,l3))
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
热门推荐
10 诗词送行祝福语大全简短
11 新房开工吉日祝福语简短
12 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短