您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
今天一起學(xué)習(xí)python的數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)。
1. 模塊初識(shí)
Python的強(qiáng)大之處在于他有非常豐富和強(qiáng)大的標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)。
一般標(biāo)準(zhǔn)庫(kù)在Lib目錄,第三方庫(kù):在 site-packages中。
1.1 sys模塊(python解釋器的sys模塊,用c語(yǔ)音寫(xiě)的,Lib目錄下沒(méi)有sys.py)
sys模塊主要是用于提供對(duì)python解釋器相關(guān)的操作,比如:
用法舉例:
1.2 os模塊
os模塊提供了多數(shù)操作系統(tǒng)的功能接口函數(shù)。當(dāng)os模塊被導(dǎo)入后,它會(huì)自適應(yīng)于不同的操作系統(tǒng)平臺(tái),根據(jù)不同的平臺(tái)進(jìn)行相應(yīng)的操作,在python編程時(shí),經(jīng)常和文件、目錄打交道,所以離不了os模塊。python編程時(shí),經(jīng)常和文件、目錄打交道,這是就離不了os模塊。
用法舉例:
大家可以理解下下面代碼是什么意思?文末留言一起交流。
2. python運(yùn)行機(jī)制
我們知道python是解釋型語(yǔ)言,那么生成的*.pyc文件是什么呢?c應(yīng)該是compiled的縮寫(xiě)才對(duì)?。?/p>
一些解釋型語(yǔ)言也可以通過(guò)解釋器的優(yōu)化來(lái)在對(duì)程序做出翻譯時(shí)對(duì)整個(gè)程序做出優(yōu)化,從而在效率上接近編譯型語(yǔ)言。
此外,隨著Java等基于虛擬機(jī)的語(yǔ)言的興起,我們又不能把語(yǔ)言純粹地分成解釋型和編譯型這兩種。
用Java來(lái)舉例,Java首先是通過(guò)編譯器編譯成字節(jié)碼文件,然后在運(yùn)行時(shí)通過(guò)解釋器給解釋成機(jī)器文件。所以我們說(shuō)Java是一種先編譯后解釋的語(yǔ)言。
其實(shí)Python和Java/C#一樣,也是一門(mén)基于虛擬機(jī)的語(yǔ)言
簡(jiǎn)述Python的運(yùn)行過(guò)程
當(dāng)python程序運(yùn)行時(shí),編譯的結(jié)果則是保存在位于內(nèi)存中的PyCodeObject中,當(dāng)Python程序運(yùn)行結(jié)束時(shí),Python解釋器則將PyCodeObject寫(xiě)回到pyc文件中。
當(dāng)python程序第二次運(yùn)行時(shí),首先程序會(huì)在硬盤(pán)中尋找pyc文件,如果找到,則直接載入,否則就重復(fù)上面的過(guò)程。
判斷更新時(shí)間,執(zhí)行py還是pyc。
說(shuō)pyc文件其實(shí)是PyCodeObject的一種持久化保存方式。
3. 數(shù)據(jù)類(lèi)型
int(整型)
在32位機(jī)器上,整數(shù)的位數(shù)為32位,取值范圍為
-2^31~2^31-1,
在64位系統(tǒng)上,整數(shù)的位數(shù)為64位,取值范圍為
-2^63~2^63-1,
這也是為什么32位系統(tǒng)內(nèi)存最大為4G的原因。
4G=4*1024M*1024k*1024-1 = 2^31-1
long(長(zhǎng)整型)
從Python2.2起,如果整數(shù)發(fā)生溢出,Python會(huì)自動(dòng)將整數(shù)數(shù)據(jù)轉(zhuǎn)換為長(zhǎng)整數(shù)
python3 已經(jīng)不區(qū)分int和long
float(浮點(diǎn)型)
浮點(diǎn)數(shù)用來(lái)處理實(shí)數(shù),即帶有小數(shù)的數(shù)字。
浮點(diǎn)數(shù)是屬于有理數(shù)中某特定子集的數(shù)的數(shù)字表示,小數(shù)包括有理數(shù)和無(wú)理數(shù)。
所以浮點(diǎn)數(shù)一定是小數(shù),小數(shù)不一定是浮點(diǎn)數(shù)。
浮點(diǎn)計(jì)算是指浮點(diǎn)數(shù)參與的運(yùn)算,這種運(yùn)算通常伴隨著因?yàn)闊o(wú)法精確表示而進(jìn)行的近似或舍入。
復(fù)數(shù)
由實(shí)數(shù)部分和虛數(shù)部分組成,一般形式為x+yj,其中的x是復(fù)數(shù)的實(shí)數(shù)部分,y是復(fù)數(shù)的虛數(shù)部分,這里的x和y都是實(shí)數(shù)。
布爾值
字符串
Python 3最重要的新特性大概是對(duì)文本和二進(jìn)制數(shù)據(jù)做了更為清晰地區(qū)分。文本總是Unicode,由str類(lèi)型表示,二進(jìn)制數(shù)據(jù)由bytes類(lèi)型表示。Python 3不會(huì)以任意隱式的方式混用str和butes,正因?yàn)榇?,python 3不能拼接字符串和字符包,也無(wú)法在字節(jié)包里搜索字符串,不能講字符串傳入?yún)?shù)為字節(jié)包的函數(shù)。
str 轉(zhuǎn)為 bytes – encode
bytes 轉(zhuǎn)為 str – decode
python 數(shù)據(jù)傳輸,都是以二進(jìn)制數(shù)據(jù)傳。
判斷一個(gè)變量的類(lèi)型
4. 字符串操作
大小寫(xiě)處理
字符串格式判斷
格式化輸出
字符空格回車(chē)處理
字符串處理
其他
5. 列表、元組操作
列表
元組
元組(): 又稱(chēng)只讀列表,只有 count index 兩個(gè)方法。
6. 字典操作
字典一種key - value 的數(shù)據(jù)類(lèi)型
語(yǔ)法:
字典的特性:
a). dict是無(wú)序的
b). key必須是唯一的,so 天生去重
常用:
遍歷字典
fromkeys用法
7. 深copy和淺copy
7.1 數(shù)字和字符串
上篇提了:對(duì)于數(shù)字和字符串一旦創(chuàng)建便不能被修改,假如對(duì)于字符串進(jìn)行替代操作,只會(huì)在內(nèi)存中重新生產(chǎn)一個(gè)字符串,而對(duì)于原字符串,并沒(méi)有改變。
7.2 字典、列表等數(shù)據(jù)結(jié)構(gòu)
先看個(gè)例子:
請(qǐng)想一下:如果對(duì)alphabet的值做如下更改,其他四個(gè)變量的值會(huì)不會(huì)變化呢?
下面分別看一下其他四個(gè)變量的值:
7.3 總結(jié)一下
直接“=”賦值,都指向同一個(gè)內(nèi)存地址,alphabet變,alphabet3也變。和簡(jiǎn)單的數(shù)字、字符串不一樣
list.copy()和copy模塊的copy.copy()一樣,都是淺copy,只copy了第一層,下面的層只是copy內(nèi)存地址,源變量深層被更改,則更改。
完全克隆,不只拷貝內(nèi)存地址,則要深copy,使用copy模塊的copy.deepcopy()
以上就是Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。