這篇文章主要介紹了python 內建函數filter的相關資料,需要的朋友可以參考下
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']
##字串及將其取出or 取反。
s.rfind'text'+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(lambda s: s.rfind('text') + 1, li))) # 取反,下三个例子是一样的 print(list(filter(lambda s: not s.rfind('text') + 1, li)))
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的詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!