from:https://www.cnblogs.com/AlwaysWIN/p/6202320.html
描述
map() 會根據提供的函數對指定序列做映射。
第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。
語法
map() 函數語法:
map(function, iterable, ...)
參數
- function -- 函數,有兩個參數
- iterable -- 一個或多個序列
返回值
返回列表。
實例
例如,對於list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把list的每個元素都作平方,就可以用map()函數: 因此,我們只需要傳入函數f(x)=x*x,就可以利用map()函數完成這個計算: def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]) 輸出結果: [1, 4, 9, 10, 25, 36, 49, 64, 81] 注意:map()函數不改變原有的 list,而是返回一個新的 list。 利用map()函數,可以把一個 list 轉換為另一個 list,只需要傳入轉換函數。 由於list包含的元素可以是任何類型,因此,map() 不僅僅可以處理只包含數值的 list,事實上它可以處理包含任意類型的 list,只要傳入的函數f可以處理這種數據類型。 任務 假設用戶輸入的英文名字不規范,沒有按照首字母大寫,后續字母小寫的規則,請利用map()函數,把一個list(包含若干不規范的英文名字)變成一個包含規范英文名字的list: 輸入:['adam', 'LISA', 'barT'] 輸出:['Adam', 'Lisa', 'Bart'] def format_name(s): s1=s[0:1].upper()+s[1:].lower(); return s1; print map(format_name, ['adam', 'LISA', 'barT'])
以下實例展示了 reduce() 的使用方法:
>>>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]
map()函數是python內置的高階函數,對傳入的list的每一個元素進行映射,返回一個新的映射之后的list
當func函數時None時,這就同zip()函數了,並且zip()開始取代這個了,目的是將多個列表相同位置的元素歸並到一個元組。