<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
小屌絲:魚哥, 都說要想程式碼寫的溜,Lamdba不能少。
小魚:你在專案程式碼多寫幾個lamdba試試,看看架構師找不找你喝茶水。
小屌絲:…
小魚:逗你玩… 架構師哪捨得自己花錢買茶葉,都是能蹭就蹭…
小屌絲:…
小魚:你這突然提到lamdba函數,是想了解點什麼??
小屌絲:嘿嘿,真是什麼都瞞不過你, 我就想把python最常用的內建函數在重新捋一捋,
小魚:說實話。
小屌絲:你也知道,我女神最近在學習python,所以我想…
小魚:靠… 就知道你是這樣的!
小屌絲:魚哥,我也是身不由己啊, 不然… 說出來都是眼淚。
小魚:行了,別裝的這麼可憐, 我給你捋一捋不就行了。
小屌絲:啥也別說了,此時我想…
lambda 函數用於建立匿名函數,又被稱為lambda表示式。
實際上它只是一個表示式的存在,如果在程式碼編寫過程中需要實現簡單的函數邏輯但是單獨寫一個函數又比較麻煩就可以使用lambda表示式只需要一行程式碼就可以完成了。
比如需要實現一個簡單的加法計算,使用基本的函數來實現需要建立一個add_1函數。
範例:
實現一個簡單的加法計算。
一、基本函數
程式碼範例
# -*- coding:utf-8 -*- # @Time : 2022-08-24 # @Author : Carl_DJ #基本函數來實現加法計算 def add_ms(x,y): return x + y print(f'輸出結果:{add_ms(8,9)}')
執行結果
輸出結果:17
二、lamdba表示式
使用lamdba表示式來實現
程式碼範例
# -*- coding:utf-8 -*- # @Time : 2022-08-24 # @Author : Carl_DJ #lamdba表示式來實現 add_lamd = lambda x,y:x+y print(f'lamdba表示式輸出結果:{add_lamd(5,10)}')
執行結果
lamdba表示式輸出結果:15
解析:
lambda x,y: x + y 表示 x,y是作為引數,x + y是作為函數的運算邏輯被執行。
map函數可以使用另外一個函數轉換整個可迭代物件的函數,包括將字串轉換為數位、數位的四捨五入等等。
之所以使用map函數來完成這些事情可以節約記憶體,使程式碼的執行速度提高,並且使用的程式碼量比較少。
2.2.1 數位轉換
範例:
將一個字串的陣列轉換成數位的陣列的形式,這裡用兩種方式:
接下來,我們用程式碼轉換。
一、傳統for迴圈方式
程式碼範例
# -*- coding:utf-8 -*- # @Time : 2022-08-24 # @Author : Carl_DJ #for 迴圈來讀取res列表的值 strings = ['10','20','30','40','50'] res = [] for str in strings: res.append(int(str)) print(f'輸出結果:{res}')
執行結果
輸出結果:[10, 20, 30, 40, 50]
二、map函數
我們使用map函數方式來轉換。
程式碼範例
# -*- coding:utf-8 -*- # @Time : 2022-08-24 # @Author : Carl_DJ #呼叫map函數 strings = ['11','22','33','44','55'] res_map = map(int,strings) print(f'map函數輸出結果:{list(res_map)}')
執行結果
map函數輸出結果:[11, 22, 33, 44, 55]
可以看到,map函數,一行程式碼就可以轉換完成,非常方便。
2.2.2 字母大小寫轉換
解析:
map(int,strings),其中int是作為函數作為引數傳入的,而strings就是可以迭代的物件。
範例
把小寫英文字母轉換成大寫英文字母
程式碼範例
# -*- coding:utf-8 -*- # @Time : 2022-08-24 # @Author : Carl_DJ ''' 程式碼實現功能: 建立函數,來轉換可轉化的序列資料 初始化make_super函數,將小寫英文轉換成大寫英文 ''' #定義make_super函數, def make_super(text): res_text = text.upper() return res_text #定義英文單詞列表 words = ['python', 'java', 'ruby','go'] #轉化 words_res = list(map(make_super, words)) print(f'轉換結果:{words_res}')
執行結果
轉換結果:['PYTHON', 'JAVA', 'RUBY', 'GO']
使用map(make_super, words),其中make_super是作為函數傳入的,而words作為可序列化資料。
定義
filter函數:使用該函數可以有效的過濾掉不需要的列表中的資料元素。
方法
''' filter(function, iterable) '''
在邏輯處理中,同樣是需要一個處理常式和一個可序列化的資料。
# -*- coding:utf-8 -*- # @Time : 2022-08-24 # @Author : Carl_DJ #定義列表 list_num = [11,22,33,44,55,66,77] #過濾掉偶數,保留奇數 new_list = filter(lambda n:n % 2 == 1,list_num) print(f'過濾後的結果:{list(new_list)}')
執行結果
過濾後的結果:[11, 33, 55, 77]
通過執行結果,可以看到過濾掉了所有的偶數元素,留下了奇數元素。
定義
reduce函數通常用於計算整個列表的邏輯運算,即將一個函數的運算可以新增到這個列表的每個元素上面。
方法
''' reduce(function, iterable[, initializer]) '''
程式碼範例
計算一個列表中每個元素之間的相乘的結果:
# -*- coding:utf-8 -*- # @Time : 2022-08-24 # @Author : Carl_DJ from functools import reduce #列表 list_re = [10,20,30,40,50,] #計算每個元素的乘積 print(f'計算結果:{reduce(lambda x, y: x * y, list_re)}')
執行結果
計算結果:12000000
定義
enumerate 函數:一般用於可序列化資料的處理上面,而python中的可序列化資料又比較多,所以,還是蠻重要的。
程式碼範例
可以使用該函數直接遍歷出一個可序列化資料的下標索引以及對應的資料。
# -*- coding:utf-8 -*- # @Time : 2022-08-24 # @Author : Carl_DJ #定義列表內容 words = ['python', 'java', 'ruby','go'] #遍歷執行,返回新的列表 for index, data in enumerate(words): print(f'當前索引:{index},當前資料:{data}')
執行結果
當前索引:0,當前資料:python
當前索引:1,當前資料:java
當前索引:2,當前資料:ruby
當前索引:3,當前資料:go
定義
zip函數:可以同時遍歷多個列表並將相同位置的元素組合成一個元祖。
程式碼範例
#定義空列表 list_res = [] #遍歷列表使其相同位置元素能組合成 for m in zip([1, 2, 3, 4, 5], ['python', 'java', 'ruby', 'go', 'C#']): list_res.append(m) print(f'輸出結果:{list_res}')
執行結果
輸出結果:[(1, 'python'), (2, 'java'), (3, 'ruby'), (4, 'go'), (5, 'C#')]
看到這裡,今天的分享差不多就完事了。
今天共分享了六種常用的內建函數:
在實際的工作中,這些都是非常實實在在常用的函數,
所以,這些也都是必須要掌握的知識。
到此這篇關於六個Python3中使用最廣泛的內建函數總結的文章就介紹到這了,更多相關Python3內建函數內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45