程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python filter()函數的簡單理解與用法

編輯:Python

如同字面意思,可以原地保留某個對象中滿足指定要求的元素。

例如,我們想要去除列表中的指定數,給定一個數組A如下:

A = [3, 7, 8, 6, 9, 8, 2, 1, 8]

現在我們想要去除裡面的所有數字8。一個最簡單的方法當然是寫for循環:

A = [3, 7, 8, 6, 9, 8, 2, 1, 8]
for a in A:
if a == 8:
A.remove(8)
print(A)

但是這樣的話就不太簡潔。利用filter函數的寫法如下:

A = [3, 7, 8, 6, 9, 8, 2, 1, 8]
def not_8(x):
return x != 8
A = filter(not_8, A)
print(list(A))

這裡將判定條件單獨封裝出來是為了方便理解,實際上:

filter(not_8, A)

與匿名函數寫法

filter(lambda x: x != 8, A)

是等同的,後者在實際代碼中更為常見。


總結,形式化的語法規范如下:

filter(function, iterable)
  • iterable:可被迭代(被for循環)的對象,最常用的就是列表了
  • function:判定函數,當iterable中元素傳入時,返回為True的被保留,反之不被保留

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved