1. 程式人生 > >python的map()函式的使用方法

python的map()函式的使用方法

目錄

描述

語法

引數

返回值

示例

描述

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>