1. 程式人生 > 實用技巧 >Python語言程式設計 學習筆記(三)

Python語言程式設計 學習筆記(三)

第十四章 元組、集合和字典

整章內容:

  • [x] 建立元組。
  • [x] 使用元組作為固定列表來防止新增、刪除或替換元素。
  • [x] 將常見的序列運算應用於元組。
  • [x] 建立集合。
  • [x] 使用addremove方法對集合進行元素的新增和刪除。
  • [x] 使用lenminmaxsum函式對集合進行操作。
  • [x] 使用innot in運算子判斷一個元素是否在一個集合中。
  • [x] 使用for迴圈遍歷集合中的元素。
  • [x] 使用issubsetissuperset方法檢測一個集合是否是另一個集合的子集或父集。
  • [x] 使用==運算子檢測兩個集合是否具有相同的內容。
  • [x] 使用運算子|&
    -^實現集合求並、交、差、和對稱差。
  • [x] 比較集合和列表的效能區別。
  • [x] 使用集合開發一個統計Python原始檔中關鍵字個數的程式。
  • [x] 建立字典。
  • [x] 使用語法dictionaryName[key]對字典新增、修改和獲取元素。
  • [x] 使用del關鍵字刪除字典中的條目。
  • [x] 使用for迴圈遍歷字典中的關鍵字。
  • [x] 使用len函式獲取字典的大小。
  • [x] 使用innot in運算子檢測一個關鍵字是否在字典中。
  • [x] 使用==運算子檢測兩個字典是否有相同的內容。
  • [x] 在字典上使用keysvaluesitemscleangetpoppopitem方法。
  • [x] 使用字典開發應用程式。

新內容:

  1. 元組中的元素是固定的,一旦一個元組被建立,就無法對元組中的元素進行新增、刪除、替換或重新排序。

    t1 = ()
    t2 = (1, 2, 3)
    t3 = tuple([2 * x for x in range(1, 5)])
    t4 = tuple("abac")
    
  2. 集合中的元素不重複且不是按任何特定順序放置的。

    s1 = set()
    s2 = {1, 3, 5}
    s3 = set((1, 3, 5))
    s4 = set([x * 2 for x in range(1, 10)])
    
  3. add(e):對集合新增元素。

    remove(e)

    :對集合刪除元素。若e不存在,則丟擲一個KeyError異常。

  4. 字典是一個儲存鍵值對集合的容器物件,通過使用關鍵字實現快速獲取、刪除和更新值。

    students = {"111" : "one", "222" : "two"}
    students["333"] = "three"
    del students["333"]
    

其他內容:

  1. 一個元組包含了一個固定的元素列表,但元組裡的個體元素可能是易變的。如下所示,儘管不能新增、刪除或替換元組中的圓物件,但可以改變一個圓的半徑,因為一個圓物件是可變的。如果一個元組包含不可變的物件,那麼這個元組被稱為不可變的,如數字元組或字串元組。

    from CircleFromGeometricObject import Circle
    circles = (Circle(2), Circle(4), Circle(7))
    circles[0].setRadius(30)
    circles[0].getRadius()
    
  2. Python使用花括號建立集合和字典,語法{}被用來表示一個空字典,為了建立一個空集合,使用set()

  3. 不能使用比較運算子對字典進行比較,因為字典中的條目是沒有順序的。

第十五章 遞迴

整章內容:

  • [x] 解釋什麼是遞迴函式並描述使用遞迴的好處。
  • [x] 為遞迴數學函式開發遞迴程式。
  • [x] 解釋在呼叫棧中如何處理遞迴函式的呼叫。
  • [x] 使用遞迴解決問題。
  • [x] 使用輔助函式設計一個遞迴函式。
  • [x] 使用遞迴實現選擇排序。
  • [x] 使用遞迴實現二分查詢。
  • [x] 使用遞迴獲取一個目錄的大小。
  • [x] 使用遞迴解決漢諾塔問題。
  • [x] 使用遞迴繪製分形。
  • [x] 使用遞迴解決八皇后問題。
  • [x] 瞭解遞迴和迭代之間的關聯與區別。
  • [x] 瞭解尾遞迴函式並解釋為什麼需要它。

新內容:

  1. os模組中的幾個函式:

    • os.path.isfile(filename):判斷是不是一個檔名。

    • os.path.getsize(filename):返回檔案的大小。

    • os.listdir(directory):返回一個子目錄列表以及目錄下的檔案。

其他內容:

  1. 如果從遞迴呼叫返回時沒有待處理的操作要完成,那麼這個遞迴的函式就稱為尾遞迴,尾遞迴是高效的。