Python語言程式設計 學習筆記(三)
阿新 • • 發佈:2020-09-16
第十四章 元組、集合和字典
整章內容:
- [x] 建立元組。
- [x] 使用元組作為固定列表來防止新增、刪除或替換元素。
- [x] 將常見的序列運算應用於元組。
- [x] 建立集合。
- [x] 使用
add
和remove
方法對集合進行元素的新增和刪除。 - [x] 使用
len
、min
、max
和sum
函式對集合進行操作。 - [x] 使用
in
和not in
運算子判斷一個元素是否在一個集合中。 - [x] 使用
for
迴圈遍歷集合中的元素。 - [x] 使用
issubset
或issuperset
方法檢測一個集合是否是另一個集合的子集或父集。 - [x] 使用
==
運算子檢測兩個集合是否具有相同的內容。 - [x] 使用運算子
|
、&
-
和^
實現集合求並、交、差、和對稱差。 - [x] 比較集合和列表的效能區別。
- [x] 使用集合開發一個統計Python原始檔中關鍵字個數的程式。
- [x] 建立字典。
- [x] 使用語法
dictionaryName[key]
對字典新增、修改和獲取元素。 - [x] 使用
del
關鍵字刪除字典中的條目。 - [x] 使用
for
迴圈遍歷字典中的關鍵字。 - [x] 使用
len
函式獲取字典的大小。 - [x] 使用
in
或not in
運算子檢測一個關鍵字是否在字典中。 - [x] 使用
==
運算子檢測兩個字典是否有相同的內容。 - [x] 在字典上使用
keys
、values
、items
、clean
、get
、pop
和popitem
方法。 - [x] 使用字典開發應用程式。
新內容:
-
元組中的元素是固定的,一旦一個元組被建立,就無法對元組中的元素進行新增、刪除、替換或重新排序。
t1 = () t2 = (1, 2, 3) t3 = tuple([2 * x for x in range(1, 5)]) t4 = tuple("abac")
-
集合中的元素不重複且不是按任何特定順序放置的。
s1 = set() s2 = {1, 3, 5} s3 = set((1, 3, 5)) s4 = set([x * 2 for x in range(1, 10)])
-
add(e)
:對集合新增元素。remove(e)
e
不存在,則丟擲一個KeyError
異常。 -
字典是一個儲存鍵值對集合的容器物件,通過使用關鍵字實現快速獲取、刪除和更新值。
students = {"111" : "one", "222" : "two"} students["333"] = "three" del students["333"]
其他內容:
-
一個元組包含了一個固定的元素列表,但元組裡的個體元素可能是易變的。如下所示,儘管不能新增、刪除或替換元組中的圓物件,但可以改變一個圓的半徑,因為一個圓物件是可變的。如果一個元組包含不可變的物件,那麼這個元組被稱為不可變的,如數字元組或字串元組。
from CircleFromGeometricObject import Circle circles = (Circle(2), Circle(4), Circle(7)) circles[0].setRadius(30) circles[0].getRadius()
-
Python使用花括號建立集合和字典,語法
{}
被用來表示一個空字典,為了建立一個空集合,使用set()
。 -
不能使用比較運算子對字典進行比較,因為字典中的條目是沒有順序的。
第十五章 遞迴
整章內容:
- [x] 解釋什麼是遞迴函式並描述使用遞迴的好處。
- [x] 為遞迴數學函式開發遞迴程式。
- [x] 解釋在呼叫棧中如何處理遞迴函式的呼叫。
- [x] 使用遞迴解決問題。
- [x] 使用輔助函式設計一個遞迴函式。
- [x] 使用遞迴實現選擇排序。
- [x] 使用遞迴實現二分查詢。
- [x] 使用遞迴獲取一個目錄的大小。
- [x] 使用遞迴解決漢諾塔問題。
- [x] 使用遞迴繪製分形。
- [x] 使用遞迴解決八皇后問題。
- [x] 瞭解遞迴和迭代之間的關聯與區別。
- [x] 瞭解尾遞迴函式並解釋為什麼需要它。
新內容:
-
os模組中的幾個函式:
-
os.path.isfile(filename)
:判斷是不是一個檔名。 -
os.path.getsize(filename)
:返回檔案的大小。 -
os.listdir(directory)
:返回一個子目錄列表以及目錄下的檔案。
-
其他內容:
- 如果從遞迴呼叫返回時沒有待處理的操作要完成,那麼這個遞迴的函式就稱為尾遞迴,尾遞迴是高效的。