【1.30】filter 函数
#filter 函数 list_a = ["wang_sb","sb_liu","li_sb_zhao","deng"] #选择依sb 开始的字符串 list_new = [] for i in list_a: if i.startswith("sb"): list_new.append(i) print list_new #简化函数 list_a = ["wang_sb","sb_liu","li_sb_zhao","deng"] def func(array): list_new = [] for i in list_a: if i.startswith("sb"): list_new.append(i) return list_new print func(list_a) #定义多个选择方法 list_a = ["wang_sb","sb_liu","li_sb_zhao","deng"] def start(x): if x.startswith("sb"): return x def end(x): if x.endswith("sb"): return x def contain(x): if x.count("sb"): return x def center1(x): if x.count("sb") and (not(x.startswith("sb") or x.endswith("sb"))): return x def func1(funcnew,array): list_new = [] for i in array: if funcnew(i): list_new.append(i) return list_new print func1(center1,list_a) ['li_sb_zhao'] #lambada list_a = ["wang_sb","sb_liu","li_sb_zhao","deng"] def func1(funcnew,array): list_new = [] for i in array: if funcnew(i): list_new.append(i) return list_new print func1(lambda x:x.startswith("sb"),list_a) print func1(lambda x: x.endswith("sb"),list_a) print func1(lambda x:x.count("sb"),list_a) print func1(lambda x:x.count("sb") and (not(x.startswith("sb") or x.endswith("sb"))),list_a) ['sb_liu'] ['wang_sb'] ['wang_sb', 'sb_liu', 'li_sb_zhao'] ['li_sb_zhao'] print "---------------11111----------------------------------" list_a = ["wang_sb","sb_liu","li_sb_zhao","deng"] print list(filter(lambda x:x.startswith("sb"),list_a)) print list(filter(lambda x: x.endswith("sb"),list_a)) print list(filter(lambda x:x.count("sb"),list_a)) print list(filter(lambda x:x.count("sb") and (not(x.startswith("sb") or x.endswith("sb"))),list_a)) ['sb_liu'] ['wang_sb'] ['wang_sb', 'sb_liu', 'li_sb_zhao'] ['li_sb_zhao']
filter 就是将可迭代对象做一个函数处理,返回值通过list获取
否则也是一个迭代器
浙公网安备 33010602011771号