網站首頁 編程語言 正文
你應該聽說過,應用Python,可以讓你處理一天的重復工作量,縮短到幾分鐘甚至更短。從此解放上班時間,研究更多更有效率的工作方法。進一步提升工作效率,讓工作更出彩。這不是廣告,這是實錘。
本文和你一起探索Python中的map函數,讓你以最短的時間明白這個函數的原理。也可以利用碎片化的時間鞏固這個函數,讓你在處理工作過程中更高效。
一、map函數的定義
map函數是Python中常用的內置函數,它會根據提供的函數對指定序列做映射。可以用來替換for循環語句,在不使用任何循環的情況下對所有指定元素進行迭代,讓代碼看起來更簡潔。其基本調用語法如下:
map(func, *iterables)
func:函數。
*iterables:一個或多個序列。
二、map函數實例
對數列中的每個元數求平方
如果我們要用循環函數對數列中的每個數求平方,可用如下代碼:
new_list = []
for i in [3, 4, 5, 6]:
new_list.append(i**2)
print(new_list)
得到結果:
[9, 16, 25, 36]
而用map函數一行代碼直接搞定,具體如下:
list(map(lambda x:x**2, [3, 4, 5, 6]))
得到結果:
[9, 16, 25, 36]
其中lambda x:x**2是函數,[3, 4, 5, 6]是原始數列,返回的結果是根據函數對原始數列做的映射。不過map的結果要通過list函數才能顯示出來。
求兩個數列中對應元素的和
有的人可能會說a是一個數列,b是另一個數列,求兩個數列的和那還不簡單,直接a+b不就好了。那我們來做個小實驗,看看python中兩個數列直接用+加起來會得到什么,代碼如下:
a = [2, 6, 3]
b = [3, 4, 5]
a + b
得到結果:
[2, 6, 3, 3, 4, 5]
可以發現python中兩個數列求+,直接將兩個數列拼接后返回。聰明的你想到用map函數怎么操作了嗎?具體代碼如下:
a = [2, 6, 3]
b = [3, 4, 5]
list(map(lambda a,b:a+b, a, b))
得到結果:
[5, 10, 8]
人工加一下可以發現答案是對的。
求數列中每個元素的長度
對python有了解的小伙伴應該知道len(str) 表示求str的長度。如果想要求數列中每個元素的長度應該怎么寫呢?具體代碼如下:
list(map(len, ['white', 'blue', 'green', 'yellow']))
得到結果:
[5, 4, 5, 6]
人工校驗一下可以發現答案是對的。
把數列中每個英文元素轉換成對應的大寫
對python有了解的小伙伴應該知道str.upper()表示把str中的字母轉換成對應的大寫。如果想要把數列中每個元素中的英文都轉換成對應的大寫應該怎么操作?具體代碼如下:
list(map(lambda x:x.upper(), ['white', 'blue', 'green', 'yellow']))
得到結果:
['WHITE', 'BLUE', 'GREEN', 'YELLOW']
人工校驗一下可以發現答案是對的。
將字符串轉換成數值數列
將字符串轉換成數值數列的具體代碼如下:
list(map(int, '789'))
得到結果:
[7, 8, 9]
人工校驗一下可以發現答案是對的。
提取字典中的鍵
如果想提取字典中的鍵你能想到幾種方法?本文提供兩種方法供大家參考。
方法一:
應用字典自帶的函數進行提取,具體代碼如下:
dict_1 = {'星期一': '吃榴蓮', '星期二': '吃葡萄' , '星期三': '吃西瓜', '星期四': '吃櫻桃', '星期五': '吃波羅蜜', '星期六': '吃葡萄', '星期天': '吃獼猴桃'}
list(dict_1.keys())
得到結果:
['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天']
人工校驗一下可以發現答案是對的。
方法二:
應用map函數進行提取,具體代碼如下:
list(map(str, {'星期一': '吃榴蓮', '星期二': '吃葡萄' , '星期三': '吃西瓜', '星期四': '吃櫻桃', '星期五': '吃波羅蜜', '星期六': '吃葡萄', '星期天': '吃獼猴桃'}))
得到結果:
['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天']
可以發現方法二和方法一得到的結果是一致的。從以上幾個案例中可以發現應用map函數可以使得代碼更加地簡潔。
原文鏈接:https://blog.csdn.net/qq_32532663/article/details/125246898
相關推薦
- 2022-09-13 Golang優雅保持main函數不退出的辦法_Golang
- 2023-01-30 C++指針和數組:字符和字符串、字符數組的關聯和區別_C 語言
- 2022-11-18 關于python中第三方庫交叉編譯的問題_python
- 2022-07-01 python神經網絡Batch?Normalization底層原理詳解_python
- 2021-12-13 Go中時間與時區問題的深入講解_Golang
- 2022-07-02 webpack 配置file-loader統一字體打包文件輸出目錄后dist下仍然有字體打包文件
- 2022-07-24 Nginx?配置?HTTPS的詳細過程_nginx
- 2022-03-28 Python實現網頁文件轉PDF文件和PNG圖片的示例代碼_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支