1. 程式人生 > >Python核心程式設計讀書筆記

Python核心程式設計讀書筆記

本次筆記針對原書第6章節

列表

列表型別 內建函式:

list.append(obj) 新增一個物件 list.count(obj) 返回一個物件在列表中出現的次數

list.extend(seq) 把序列seq的內容新增到;列表中

list.index(obj,i=0,j=len(list))  list.insert(index,obj) 

刪除操作 list.pop(index=-1) 根據位置刪除 list,.remove(obj)根據物件刪除

 反轉和排序 list.reverse()  list.sort(func=None,key=None,reverse = False)

元組

列表和元組是非常相近的容器型別,它們除了一個用園括號,一個用方括號之外似乎看起來沒有區別,但是功能上元組和列表有一個很重要的區別,元組是一種不可變型別,它能夠做一些列表不能做的事比如做一個字典的key.

最好使用不可變型別變數的一個情況是,如果你在維護一些敏感資料,並且需要把這些資料傳遞給一個並不瞭解的函式,這時使用元組會安全很多。而當需要管理動態型別資料集合時,你要把它們創建出來,逐漸地不定期的新增它們,或者有時還要移除一些單個的元素,這就必須使用可變型別物件。

list ()和tuple()函式客廳可以你用一個列表來建立元組,反之亦然。如果你有一個元組變數,但是你要更新物件,可以用 lis()函式得到一個列表變數進行更新。如果你有一個列表變數,並且要把它傳遞給一個函式,為了保證資料不被破壞,可以使用tuple()函式將其轉換為元組

深拷貝

利用copy模組中的deepcopy()函式可以進行深拷貝,copy()進行淺拷貝,深拷貝拷貝後的物件改變資料對被拷貝物件沒有影響



字典

1.可以用工廠方法dict()來建立字典,使用內建方法fromkeys() 可以建立一個預設字典

2.可以使用key ()方法 或者 迭代器來遍歷訪問字典、

3.字典中的鍵不允許被改變,這是由於如果可以改變將可能發生因為某個變數改變導致鍵發生了改變,用原來的鍵將無法訪問取出字典中的資料的情況。

由於這個原因,字典中的鍵必須是可雜湊的,所以數字和字串 或者是隻包括數字和字串的不可變引數的元組可以作為字典的鍵,但是列表和其它字典不行。

4.cmp() 採用的字典比較演算法

字典比較演算法按照以下順序 (優先順序從高到低):(1)比較字典長度,即 len(dict1)>len(dict2)  => dict1>dict2 

(2)比較字典的鍵 如果兩個字典的長度相同,就按字典的鍵來比較,當 dict1第一個不同的鍵大於dict2中第一個不同的鍵,cmp()返回正值

(3)比較字典的值 當 dict1第一個相同的鍵的值大於dict2中第一個相同的鍵的值,cmp()返回正值

5.對映型別內建方法:進行建立,刪除,更新的方法有  dict.clear(),

dict.fromkey(),

dict.get(key,default= None)

dict.has_key(key)

dict.pop(key[,defaut]) 如果字典中,key存在,刪除並且返dict[key],如果沒有,返回 default

dict.setdefault(key,default = None) 檢查字典中是否含有某鍵,若有,則取出它的值,否則不存在,返回設定的預設值

dict.update(dict2)  將字典dict2 的鍵值對新增到字典dict

使用key(),value(),items()方法 獲取鍵,值,鍵值對的資訊