全國咨詢熱線:400-618-4000

布莱顿城市:python函數map 怎么用?[python學習]

布莱顿prime怎么获得 www.wnjebw.com.cn 創建時間:2019年10月31日15時35分

Python提供了很多能實現各種功能的內置函數。內置函數,就是在python中被自動加載的函數,任何時候都可以使用。下面我們介紹map函數的用法和作用:

map函數會根據提供的函數對指定的序列做映射。map函數的定義如下:
 
map(function, iterable, …)

 
在上述定義中,第一個參數function表示的是一個函數名,第二個參數iterable可以是序列、支持選代的容器或選代器。當調用map函數時,iterable中的每個元素都會調用function函數,所有元素調用function函數返回的結果會保存到一個迭代器對象中?!就萍雋私猓?a href="//www.wnjebw.com.cn/python/">python+人工智能課程】
 
這里說明一下,在Python2中,map函數的返回值是列表list類型如果希望將選代器對象轉為列表,則可以通過list函數進行轉換。此外,還可以使用for循環直接遍歷迭代器對象,從而取出其內部的每個元素。示例代碼如下:
 
func = lambda  x:x+2
result = map(func, [1, 2, 3, 4, 5]
print(list(ruslt))

 
上述示例中,定義了一個匿名函數func,返回某個數加2以后的結果,接著調用map函數將[1,2,3,4,5]中的每個元素取出來,作為func的參數調用func函數,之后將結果轉換為列表的形式顯示。
 
程序輸出的結果為:
[3, 4, 5, 6, 7]

 
如果map函數中傳入的 unction函數帶有兩個參數,那么map函數需要傳遞兩個序列例代碼如下。
 
result = map(lambda x, y: x+y, [1, 2, 3], [4,5,6])
print(list(result))
# 結果為
[5, 7, 9]


在 Python3以前,如果調用map函數時傳入的 function參數為None,則相當于將序列中對應位置的元素合并成為元組。示例(Phon2.7)代碼如下:
 
result = map(None, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
print result
# 輸出結果
[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]

 
如果兩個序列的元素個數不一致,那么元素少的序列會以None補齊。示例(Python 2.7)代碼如下: 【插播福利:傳智播客2019python教程全集
result = map(None, [1, 3, 5, 7, 9], [2, 4, 6])
print result
# 結果為
[(1, 2), (3, 4), (5, 6), (7, None), (9, None)]

 
在 Python3以后,當map傳入的函數為None時,就等同于zip函數(用于將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表)的功能,并且已經zip函數取代了。另外,map函數無法處理兩個序列長度不一致、對應位置操作類型不一致,它們都會報錯類型錯誤。

本文來自:傳智播客 python+人工智能學院 python.www.wnjebw.com.cn
卖吃的食材什么赚钱 微信群里卖衣服的怎么赚钱 永康土豆土餐饮赚钱吗 一起做作业老师赚钱吧 英雄联盟最赚钱的游戏吗 杭州什么工作可以赚钱吗 同仁堂古方养生馆加盟赚钱好项目 在淘宝倒卖什么最赚钱 我想开店什么最赚钱 街机电玩捕鱼抢红包 滴滴的车主怎么赚钱 183娱乐安卓 像众人帮一样可以赚钱的 问道玩哪个职业好赚钱 搜狐新闻的赚钱软件 类似趣头条怎么赚钱