Filter

Python內建的filter()函數,用於從一個序列中篩出符合條件的元素
filter()的做用是。因爲filter()使用了惰性計算,因此只有在取filter()結果的時候,纔會真正篩選並每次返回下一個篩出的元素
filter()函數返回的是一個Iterator,也就是一個惰性序列,因此要強迫filter()完成計算結果,須要用list()函數得到全部結果並返回list函數

filter()與map()比較
  相同點:都是接收一個函數和一個序列
  不一樣點:filter()把傳入的函數依次做用於每一個元素,而後根據返回值是True仍是False決定保留仍是丟棄該元素
      filter()函數的做用在於篩選,只返回符合條件的list元素,即list的元素個數在filter先後會有變化
      map()函數的做用在於將list每一個元素傳入函數進行處理spa

 

使用示例code

  刪掉list中的偶數,只保留奇數blog

  def is_odd(n):
      return n % 2 == 1

  print(list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])))  #輸出: [1, 5, 9, 15]

  把一個序列中的空字符串刪掉ip

  def not_empty(s):
      return s and s.strip()
    
  print(list(filter(not_empty, ['A', '', 'B', None, 'C', '  '])))# 輸出: ['A', 'B', 'C']
相關文章
相關標籤/搜索