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