1. 程式人生 > >python高階函式----filter函式

python高階函式----filter函式

filter函式描述

 filter() 函式用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。

該接收兩個引數,第一個為函式,第二個為序列,序列的每個元素作為引數傳遞給函式進行判,然後返回 True 或 False,最後將返回 True 的元素放到新列表中。

  filter() 函式的語法:

filter(function, iterable)
  • function -- 判斷函式。
  • iterable -- 可迭代物件。

 filter()函式的返回值

返回值為迭代器物件

示例 

 # 1.生成1~10以內奇數的列表 def is_odd(x):     return x % 2 == 1 L = [x for x in filter(is_odd, range(1, 10))] print(L) 或者: print([x for x in filter(lambda x:x % 2 == 1, range(1, 10))])

# 2. 將 1 ~ 20 的偶數用filter生成可迭代 物件後將可迭代物件生成的數放入到列表L中 def is_odd(x):     return x % 2 == 0 L = [x for x in filter(is_odd, range(1, 21))] print(L) 或者: print([x for x in filter(lambda x:x % 2 == 0, range(1, 21))])

# 2. 寫一個函式is_prime(x) 判斷x是否是素數用filter函式打印出: 20 ~ 30之間的全部素數 def is_prime(x):     for i in range(2, x):         if x % i == 0:             return False     return True L = [x for x in filter(is_prime, range(20, 31))] print(L)