關(guān)于Python中幾個(gè)有趣的函數(shù)和推導(dǎo)式解析
一、range()函數(shù)
1、range()通常用來(lái)做循環(huán)。
2、range()生成器的特性。
例子:假如range()中使用的數(shù)值特別大,為100000000000000000000000000000?python解釋器還能正常工作嗎?
如果是事先生成100000000000000000000000000000個(gè)數(shù),然后依次遍歷生成,那么內(nèi)存肯定溢出。而實(shí)際上如此巨大的數(shù)值依然不會(huì)使程序卡死。
代碼
for i in range(100000000000000000000000000000): print(i) if i > 10: break
輸出結(jié)果:
0
1
2
3
4
5
6
7
8
9
10
11
因?yàn)閞ange()函數(shù)會(huì)使用類似于生成器的特性,每次循環(huán)會(huì)記住上次使用時(shí)生成的結(jié)果值,然后從斷點(diǎn)處繼續(xù)生成,這樣就避免了空間浪費(fèi)。
二、遞歸的雷區(qū)
在計(jì)算機(jī)中,遞歸都是通過(guò)“棧”(stack)這種數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)的,每當(dāng)遞歸加深一層,棧頂就增加一層,每當(dāng)遞歸減少一層,棧頂就減少一層。
在python當(dāng)遞歸深度達(dá)到1000層時(shí),會(huì)導(dǎo)致棧溢出。
三、匿名函數(shù)lambda
1、匿名函數(shù)實(shí)例: lambda x : x+1。:前面表示傳入的參數(shù),后面表示需要執(zhí)行的代碼。無(wú)需寫(xiě)返回值。
2、匿名函數(shù)也是函數(shù),有自己的命名空間。
四、推導(dǎo)式
1、列表推導(dǎo)式
即用簡(jiǎn)短的語(yǔ)法來(lái)生成一個(gè)列表,通常用[]表示。
常規(guī)版:
print([x for x in range(10)])
#輸出
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
增加過(guò)濾條件:
print([x for x in range(10) if x >5])
#輸出
[6, 7, 8, 9]
還可以增加多個(gè)變量和條件進(jìn)行篩選。
2、字典推導(dǎo)式
即用簡(jiǎn)短的語(yǔ)法來(lái)生成一個(gè)字典,通常用{}表示。
print({x:x+2 for x in range(10)})
#輸出
{0: 2, 1: 3, 2: 4, 3: 5, 4: 6, 5: 7, 6: 8, 7: 9, 8: 10, 9: 11}
注意:必須藥用:來(lái)表示key-value
3、集合推導(dǎo)式
與字典推導(dǎo)式類似,但是要去掉‘ :’
print({x+2 for x in range(10)})
#輸出
{2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
注意:沒(méi)有元組推導(dǎo)式!沒(méi)有元組推導(dǎo)式!因?yàn)椋ǎ?biāo)識(shí)符被用作生成器的標(biāo)識(shí)符號(hào)了。
所以想要?jiǎng)?chuàng)建元組推導(dǎo)式,可以用顯式函數(shù)tuple()來(lái)表示。
print(tuple(x for x in range(5)))
#輸出
(0, 1, 2, 3, 4)
到此這篇關(guān)于關(guān)于Python中幾個(gè)有趣的函數(shù)和推導(dǎo)式解析的文章就介紹到這了,更多相關(guān)Python函數(shù)和推導(dǎo)式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python讀取Excel表格,并同時(shí)畫(huà)折線圖和柱狀圖的方法
今天小編就為大家分享一篇Python讀取Excel表格,并同時(shí)畫(huà)折線圖和柱狀圖的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10python使用response.read()接收json數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇python使用response.read()接收json數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12numpy創(chuàng)建單位矩陣和對(duì)角矩陣的實(shí)例
今天小編就為大家分享一篇numpy創(chuàng)建單位矩陣和對(duì)角矩陣的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11Python深度學(xué)習(xí)理解pytorch神經(jīng)網(wǎng)絡(luò)批量歸一化
這篇文章主要是Python深度學(xué)習(xí)篇,通過(guò)示例的詳解讓大家更好的理解pytorch神經(jīng)網(wǎng)絡(luò)批量歸一化,有需要的的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10Python+ChatGPT制作一個(gè)AI實(shí)用百寶箱
ChatGPT最近在互聯(lián)網(wǎng)掀起了一陣熱潮,其高度智能化的功能能夠給我們現(xiàn)實(shí)生活帶來(lái)諸多的便利。本文就來(lái)用Python和ChatGPT制作一個(gè)AI實(shí)用百寶箱吧2023-02-02Python 的第三方調(diào)試庫(kù) ???pysnooper?? 使用示例
這篇文章主要介紹了Python 的第三方調(diào)試庫(kù) ???pysnooper?? 使用示例的相關(guān)資料,需要的朋友可以參考下2023-02-02Python 聊聊socket中的listen()參數(shù)(數(shù)字)到底代表什么
本篇文章對(duì)Python 聊聊socket中的listen()參數(shù)(數(shù)字)到底代表什么,進(jìn)行了很好的講解,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04Python利用pandas處理Excel數(shù)據(jù)的應(yīng)用詳解
這篇文章主要介紹了Python利用pandas處理Excel數(shù)據(jù)的應(yīng)用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06利用nohup來(lái)開(kāi)啟python文件的方法
今天小編就為大家分享一篇利用nohup來(lái)開(kāi)啟python文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01