溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

發(fā)布時(shí)間:2021-12-04 19:20:59 來(lái)源:億速云 閱讀:124 作者:柒染 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(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)的操作,比如:

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

用法舉例:

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

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模塊。

用法舉例:

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

大家可以理解下下面代碼是什么意思?文末留言一起交流。

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些


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。

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

說(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

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

  • 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數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(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

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

bytes 轉(zhuǎn)為 str – decode

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

python 數(shù)據(jù)傳輸,都是以二進(jìn)制數(shù)據(jù)傳。

  • 判斷一個(gè)變量的類(lèi)型

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些


4. 字符串操作

  • 大小寫(xiě)處理

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

  • 字符串格式判斷

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

  • 格式化輸出

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

  • 字符空格回車(chē)處理

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

  • 字符串處理

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

  • 其他

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些


5. 列表、元組操作

  • 列表

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

  • 元組

元組(): 又稱(chēng)只讀列表,只有 count index 兩個(gè)方法。


6. 字典操作

字典一種key - value 的數(shù)據(jù)類(lèi)型

  • 語(yǔ)法:

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

  • 字典的特性:

a). dict是無(wú)序的

b). key必須是唯一的,so 天生去重

  • 常用:

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

  • 遍歷字典

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

  • fromkeys用法

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些


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è)例子:

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

請(qǐng)想一下:如果對(duì)alphabet的值做如下更改,其他四個(gè)變量的值會(huì)不會(huì)變化呢?

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

下面分別看一下其他四個(gè)變量的值:

Python數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)有哪些

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è)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI