python 高阶函数:filter(过滤器)
官网解释:
filter
(function,iterable)
Construct a list from those elements ofiterablefor whichfunctionreturns true.iterablemay be either a sequence, a container which supports iteration, or an iterator. Ifiterableis a string or a tuple, the result also has that type; otherwise it is always a list. IffunctionisNone
, the identity function is assumed, that is, all elements ofiterablethat are false are removed.
Note thatfilter(function,iterable)
is equivalent to[itemforiteminiterableiffunction(item)]
if function is notNone
and[itemforiteminiterableifitem]
if function isNone
.
Seeitertools.ifilter()
anditertools.ifilterfalse()
for iterator versions of this function, including a variation that filters for elements where thefunctionreturns false.
str.
strip
([chars])
Return a copy of the string with the leading and trailing characters removed.The chars argument is a string specifying the set of characters to be removed.If omitted or None
, the chars argument defaults to removing whitespace.The chars argument is not a prefix or suffix; rather, all combinations of itsvalues are stripped:
>>>'spacious'.strip()'spacious'>>>'www.example.com'.strip('cmowz.')'example'
就是,如果省略参数,默认过滤空格。
#过滤list中的偶数
def get_odd(s):
return s % 2 == 1; #C语言绝对不能这么写
print "get odd:", filter(get_odd, [1, 2, 3, 4, 5, 6])
#过滤list中的空格
def not_empty(s):
return s and s.strip() #s过滤了'None'元素,s.strip()默认过滤空格
print "not_empty:", filter(not_empty, ['A', ' ', 'B', None, 'C', ' '])
补充:
.strip(None/string):从头尾开始,按对象字符串顺序删除
a.如果strip参数中没有对象头尾开始的字符,则无法删除,返回对象全字符
str1='www.example.com'print(str1.strip('lcoz.'))####strip参数中没有'w'/'m',两端删除受阻
b.如果strip参数中有对象的头尾开始字符,则匹配删除参数中的字符,返回未删除字符
str1='www.example.com'print(str1.strip('lcwmeoza.'))xamp####strip参数中没有'x'/'p',两端删除受阻
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。