Python?Map函數(shù)保姆級使用教程
你應(yīng)該聽說過,應(yīng)用Python,可以讓你處理一天的重復(fù)工作量,縮短到幾分鐘甚至更短。從此解放上班時間,研究更多更有效率的工作方法。進(jìn)一步提升工作效率,讓工作更出彩。這不是廣告,這是實錘。
本文和你一起探索Python中的map函數(shù),讓你以最短的時間明白這個函數(shù)的原理。也可以利用碎片化的時間鞏固這個函數(shù),讓你在處理工作過程中更高效。
一、map函數(shù)的定義
map函數(shù)是Python中常用的內(nèi)置函數(shù),它會根據(jù)提供的函數(shù)對指定序列做映射??梢杂脕硖鎿Qfor循環(huán)語句,在不使用任何循環(huán)的情況下對所有指定元素進(jìn)行迭代,讓代碼看起來更簡潔。其基本調(diào)用語法如下:
map(func, *iterables)
func:函數(shù)。
*iterables:一個或多個序列。
二、map函數(shù)實例
對數(shù)列中的每個元數(shù)求平方
如果我們要用循環(huán)函數(shù)對數(shù)列中的每個數(shù)求平方,可用如下代碼:
new_list = [] for i in [3, 4, 5, 6]: new_list.append(i**2) print(new_list)
得到結(jié)果:
[9, 16, 25, 36]
而用map函數(shù)一行代碼直接搞定,具體如下:
list(map(lambda x:x**2, [3, 4, 5, 6]))
得到結(jié)果:
[9, 16, 25, 36]
其中l(wèi)ambda x:x**2是函數(shù),[3, 4, 5, 6]是原始數(shù)列,返回的結(jié)果是根據(jù)函數(shù)對原始數(shù)列做的映射。不過map的結(jié)果要通過list函數(shù)才能顯示出來。
求兩個數(shù)列中對應(yīng)元素的和
有的人可能會說a是一個數(shù)列,b是另一個數(shù)列,求兩個數(shù)列的和那還不簡單,直接a+b不就好了。那我們來做個小實驗,看看python中兩個數(shù)列直接用+加起來會得到什么,代碼如下:
a = [2, 6, 3] b = [3, 4, 5] a + b
得到結(jié)果:
[2, 6, 3, 3, 4, 5]
可以發(fā)現(xiàn)python中兩個數(shù)列求+,直接將兩個數(shù)列拼接后返回。聰明的你想到用map函數(shù)怎么操作了嗎?具體代碼如下:
a = [2, 6, 3] b = [3, 4, 5] list(map(lambda a,b:a+b, a, b))
得到結(jié)果:
[5, 10, 8]
人工加一下可以發(fā)現(xiàn)答案是對的。
求數(shù)列中每個元素的長度
對python有了解的小伙伴應(yīng)該知道len(str) 表示求str的長度。如果想要求數(shù)列中每個元素的長度應(yīng)該怎么寫呢?具體代碼如下:
list(map(len, ['white', 'blue', 'green', 'yellow']))
得到結(jié)果:
[5, 4, 5, 6]
人工校驗一下可以發(fā)現(xiàn)答案是對的。
把數(shù)列中每個英文元素轉(zhuǎn)換成對應(yīng)的大寫
對python有了解的小伙伴應(yīng)該知道str.upper()表示把str中的字母轉(zhuǎn)換成對應(yīng)的大寫。如果想要把數(shù)列中每個元素中的英文都轉(zhuǎn)換成對應(yīng)的大寫應(yīng)該怎么操作?具體代碼如下:
list(map(lambda x:x.upper(), ['white', 'blue', 'green', 'yellow']))
得到結(jié)果:
['WHITE', 'BLUE', 'GREEN', 'YELLOW']
人工校驗一下可以發(fā)現(xiàn)答案是對的。
將字符串轉(zhuǎn)換成數(shù)值數(shù)列
將字符串轉(zhuǎn)換成數(shù)值數(shù)列的具體代碼如下:
list(map(int, '789'))
得到結(jié)果:
[7, 8, 9]
人工校驗一下可以發(fā)現(xiàn)答案是對的。
提取字典中的鍵
如果想提取字典中的鍵你能想到幾種方法?本文提供兩種方法供大家參考。
方法一:
應(yīng)用字典自帶的函數(shù)進(jìn)行提取,具體代碼如下:
dict_1 = {'星期一': '吃榴蓮', '星期二': '吃葡萄' , '星期三': '吃西瓜', '星期四': '吃櫻桃', '星期五': '吃波羅蜜', '星期六': '吃葡萄', '星期天': '吃獼猴桃'} list(dict_1.keys())
得到結(jié)果:
['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天']
人工校驗一下可以發(fā)現(xiàn)答案是對的。
方法二:
應(yīng)用map函數(shù)進(jìn)行提取,具體代碼如下:
list(map(str, {'星期一': '吃榴蓮', '星期二': '吃葡萄' , '星期三': '吃西瓜', '星期四': '吃櫻桃', '星期五': '吃波羅蜜', '星期六': '吃葡萄', '星期天': '吃獼猴桃'}))
得到結(jié)果:
['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天']
可以發(fā)現(xiàn)方法二和方法一得到的結(jié)果是一致的。從以上幾個案例中可以發(fā)現(xiàn)應(yīng)用map函數(shù)可以使得代碼更加地簡潔。
到此這篇關(guān)于Python Map函數(shù)保姆級使用教程的文章就介紹到這了,更多相關(guān)Python Map函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python開發(fā)WebService系列教程之REST,web.py,eurasia,Django
對于今天的WebService開發(fā),我們至少有兩種選擇:SOAP/WSDL/UDDI系列的; REST風(fēng)格架構(gòu)系列的 ?。?!2014-06-06python自動化測試selenium核心技術(shù)處理彈框
這篇文章主要為大家介紹了python自動化測試selenium核心技術(shù)處理彈框的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11Django定制Admin頁面詳細(xì)實例(展示頁面和編輯頁面)
django自帶的admin因為功能和樣式比較簡陋,常常需要再次定制,下面這篇文章主要給大家介紹了關(guān)于Django定制Admin頁面(展示頁面和編輯頁面)的相關(guān)資料,需要的朋友可以參考下2023-06-06python中數(shù)字列表轉(zhuǎn)化為數(shù)字字符串的實例代碼
先前學(xué)習(xí)過,數(shù)字和字符串都可以存儲到變量當(dāng)中,下面這篇文章主要給大家介紹了關(guān)于python中數(shù)字列表轉(zhuǎn)化為數(shù)字字符串的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02jupyter .ipynb轉(zhuǎn).py的實現(xiàn)操作
這篇文章主要介紹了jupyter .ipynb轉(zhuǎn).py的實現(xiàn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03PyTorch中torch.load()的用法和應(yīng)用
torch.load()它用于加載由torch.save()保存的模型或張量,本文主要介紹了PyTorch中torch.load()的用法和應(yīng)用,具有一定的參考價值,感興趣的可以了解一下2024-03-03