- Python網(wǎng)絡(luò)爬蟲與數(shù)據(jù)分析從入門到實踐
- 馬國俊
- 1138字
- 2024-12-28 12:00:34
1.5 Python的數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)的載體,在Python語言中,數(shù)據(jù)結(jié)構(gòu)的表現(xiàn)形式是如列表、元組和字典等的對象。
1.5.1 列表及其用法
Python用方括號的形式來定義列表,再用逗號來間隔列表中的各個元素或值。下面的ListDemo.py范例程序演示了列表的常見用法。

本范例程序第1行代碼定義了名為langList的列表,該列表有4個元素,即4個字符串類型的數(shù)據(jù)。在Python中列表是用方括號來定義的,列表中的元素以逗號來分隔。第3行的print語句輸出該列表中包含的數(shù)據(jù)。
Python的列表不僅可以存儲字符串類型的數(shù)據(jù),還可以存儲布爾型或浮點型的數(shù)據(jù)。第4行代碼演示了在列表中存儲布爾型數(shù)據(jù)的用法。第7行代碼演示了存儲浮點型數(shù)據(jù)的用法。
Python的列表還可以混合存儲不同類型的數(shù)據(jù),比如第10行定義的mixedList列表包含了字符串類型、布爾類型和浮點型三種不同類型的數(shù)據(jù)。
雖然如此,在實踐中一般會在同一個列表里只存放一種類型的數(shù)據(jù),如果存放了多種不同類型的數(shù)據(jù),那么在讀取列表中元素時,就不得不用多種方法來處理不同類型的數(shù)據(jù),這無疑增加了代碼的復(fù)雜度,也就增加了代碼出錯的可能性。
1.5.2 元組及其用法
元組和列表非常相似,都是用線性表的形式來存儲數(shù)據(jù)。不過,在創(chuàng)建元組對象后,元組對象中的元素是不能被修改的,否則就會報錯,不過元組作為一個整體可以被一次性刪除。下面的TupleDemo.py范例程序演示了元組的常見用法。

本范例程序第1行代碼用小括號的形式創(chuàng)建了名為myTuple的元組,并在其中存放了3個數(shù)據(jù)(即元素)。第2行的print語句輸出了該元組中的所有元素。
前文已經(jīng)講過,元組中的元素是不能被修改的,如果企圖通過第4行和第6行的代碼修改或刪除元組中的元素,就會出現(xiàn)第3行和第5行的報錯提示信息。
不過元組可以作為一個整體被一次性地刪除掉,比如可通過上述第7行的代碼,用del方法一次性地刪除整個元組。
1.5.3 字典及其用法
程序員可以在Python的字典中用“鍵-值對”(Key-Value Pair)的方式來容納數(shù)據(jù)。單純從語法角度來看,在字典中可以存儲Python所支持的任何數(shù)據(jù)類型的數(shù)據(jù),但是為了提升代碼的可維護(hù)性,字典中“鍵-值對”數(shù)據(jù)的類型應(yīng)當(dāng)保持統(tǒng)一。
在Python中用大括號的形式來創(chuàng)建字典,字典里的鍵和值之間用冒號分隔,而每個“鍵-值對”用逗號分隔。下面的DictDemo.py范例程序演示了創(chuàng)建和使用字典的常見方法。

本范例程序第1行代碼通過大括號定義了一個字典,以“鍵-值對”的形式存儲了3種編程語言的考試成績。第2行演示了通過鍵來訪問值的用法。
第3行和第4行代碼演示了在字典中增加“鍵-值對”和通過鍵來更新值的用法。在第3行的代碼中,因為沒有'G#'這個鍵,所以就會在字典里增加“鍵-值對”。在第4行的代碼中,由于存在'Python'這個鍵,因此是通過鍵更新對應(yīng)的值。第5行的代碼演示了用del關(guān)鍵字通過指定鍵刪除字典中“鍵-值對”的方式。在這段代碼的最后,通過第7行的print語句輸出字典的最新內(nèi)容,以確認(rèn)了添加、更新和刪除字典中對象的結(jié)果。
- Python自然語言處理實戰(zhàn):核心技術(shù)與算法
- 程序設(shè)計與實踐(VB.NET)
- 簡單高效LATEX
- Architecting the Industrial Internet
- Python數(shù)據(jù)分析(第2版)
- Microsoft Dynamics GP 2013 Reporting, Second Edition
- Python時間序列預(yù)測
- 低代碼平臺開發(fā)實踐:基于React
- PySpark Cookbook
- Java Web從入門到精通(第2版)
- Hadoop大數(shù)據(jù)分析技術(shù)
- 測試架構(gòu)師修煉之道:從測試工程師到測試架構(gòu)師
- 零基礎(chǔ)學(xué)C++(升級版)
- Visual C++從入門到精通(第2版)
- Mastering Embedded Linux Programming