1. 程式人生 > >函數-map,filter

函數-map,filter

filter sans str style code 過濾 lam cti 調用

map和filter函數

相似點:都是根據提供的函數對指定的序列做映射。

不同點:map一個函數對應N個序列,filter一個函數對應一個序列

1、map()

map() 會根據提供的函數對指定序列做映射。

第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。

語法

map() 函數語法:

map(function, iterable, ...)

參數

  • function -- 函數,有兩個參數
  • iterable -- 一個或多個序列

返回值

返回列表。

實例

以下實例展示了 map() 的使用方法:

>>>def square(x) :            # 計算平方數
...     
return x ** 2 ... >>> map(square, [1,2,3,4,5]) # 計算列表和:1+2+3+4+5 [1, 4, 9, 16, 25] >>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函數 [1, 4, 9, 16, 25] # 提供了兩個列表,對相同位置的列表數據進行相加 >>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) [3, 7, 11, 15, 19]

2、filter()

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

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

語法

以下是 filter() 方法的語法:

filter(function, iterable)

參數

  • function -- 判斷函數。
  • iterable -- 可叠代對象。

返回值

返回列表。

def is_odd(n):
    return n % 2 == 1
 
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist)
返回
[1, 3, 5, 7, 9]

函數-map,filter