python的map()函式的使用方法
阿新 • • 發佈:2018-12-21
目錄
描述
map() 會根據提供的函式對指定序列做對映。
第一個引數 function 以引數序列中的每一個元素呼叫 function 函式,返回包含每次 function 函式返回值的新列表。
語法
map() 函式語法:
map(function, iterable, ...)
引數
- function -- 函式
- iterable -- 一個或多個序列
返回值
Python 2.x 返回列表。
Python 3.x 返回迭代器。
示例
>>>def square(x) : # 計算平方數 ... return x ** 2 ... >>> map(square, [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] #如果函式有多個引數,但每個引數的序列元素個數不一樣,會根據最少元素的序列進行: >>> listx = [1,2,3,4,5,6,7] # 7 個元素 >>> listy = [2,3,4,5,6,7] # 6 個元素 >>> listz = [100,100,100,100] # 4 個元素 >>> list_result = map(lambda x,y,z : x**2 + y + z,listx, listy, listz) >>> print(list(list_result)) [103, 107, 113, 121] #二維陣列的轉置 >>> arr = [[1, 4], [2, 5], [3, 6]] >>> list(map(list, zip(*arr))) [[1, 2, 3], [4, 5, 6]] #當然轉置也可以使用numpy實現 >>> import numpy as np >>> arr = [[1, 4], [2, 5], [3, 6]] >>> arr=np.array(arr).transpose() >>> arr #python3下函式返回的是迭代器,不再是列表 >>> arr = [[1, 4], [2, 5], [3, 6]] >>> for item in map(list, zip(*arr)): ... print(item) >>> print(map(list, zip(*arr))) <map object at 0x000001E3734E20B8>