函數-map,filter
阿新 • • 發佈:2018-01-14
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