map()函數 根據指定函數對指定序列做映射,在開發中使用map函數也是有效提高程序運行效率的辦法之一
語法定義
''' function:函數名 iterable:一個序列或者多個序列,實際上這就是function對應的實參 ''' map(function, iterable, ...)
返回值
返回值是迭代器,注意返回的結果只能迭代一次,如果需要多次使用請提前保存結果並處理
代碼示例
def func1(x): # 對序列中的每一個元素乘以10並返回 return x*10 ''' map() 會根據提供的函數對指定序列做映射。 序列中的每一個元素調用 func1 函數,返回新列表。 ''' x = map(func1,range(0,10)) print(list(x)) # map函數返回的迭代器只能迭代一次,迭代之后會自動清空 print(list(x)) print("***"*15) # 將map函數返回的迭代器保存轉為list,可以多次使用 y = list(map(func1,range(0,10))) print(y) print(y)
輸出結果
map函數與匿名函數一起使用
# 匿名函數:一個參數情況,傳一個序列即可 x = list(map(lambda n:n*10,range(10))) # 序列中的每個元素*10 print(x) # 輸出:[0, 10, 20, 30, 40, 50, 60, 70, 80, 90] # 匿名函數:兩個參數情況,傳兩個序列即可,依次類推 y = list(map(lambda a,b:a+b,[1,2,3],[4,5,6])) # 兩個序列相加 print(y) #輸出:[5, 7, 9]
效率對比
列表推導式 > map映射函數 > 普通for循環
總結
1,map函數的參數是由函數和一個序列或者多個序列構成
2,map函數處理的結果是迭代器,而且只能迭代一次,如果需要多次使用,請提前保存