Python筆記04-字典

【字典】—— 當索引不好用時。

映射:通過名字引用值得數據結構。字典是Python中唯一內建的映射類型。

回憶之前的列表,假設有一個“人名列表” names 和 一個“電話號碼列表” numbers.要查找某個人的電話:

【創建和使用字典】

[個人理解]Python中的“字典”就像是PHP中的“數組”,或者“json”,就是一個一個的鍵值對。

phonebook = {'zhang':'111', 'wang':'222', 'zhao':'333'}

◆ 可以用dict 函數,通過其他映射,或者(鍵,值) 這樣的序列對 建立字典。

也可以通過關鍵字參數創建字典:

【字典的操作】 —— 與“序列”很類似。

(1)字典的鍵不一定是整數類型,可以是任何不可變的類型(比如:浮點型、字符串、元組)

(2)字典可以自動添加(類似PHP的數組)

(3)表達式 k in d(d爲字典) 查找的是鍵 而不是值,表達式 v in l(l爲列表) 查找的是值 而不是索引。

◆ 注意區別空的列表 和 空的字典:

【字典的格式化字符串】

◆ 使用字典的格式化字符串用來 替換HTML的模板(非常有用)

【字典方法】

(1)clear方法:清除字典中所有的項,無返回值。

(2)copy方法:返回一個具有相同 key-value 的新字典。

[說明] 這個方法實現的是 淺複製 (shallow copy),因爲值本身就是相同的,而不是副本。

當副本替換值,原始字典不受影響。但如果修改了某個值,原始字典也會改變。

避免這一問題的方法就是:深複製(deep copy),使用copy模塊的deepcopy函數來完成:

(3)fromkeys方法:使用給定的key建立新的字典,每個key默認對應的value爲None。

(4)get方法:一般情況下,訪問字典中不存在的項時會出錯,但使用get就不會:

(5)has_key方法:檢查字典中是否包含給出的key,返回布爾。表達式 d.has_key(k) 相當於 k in d.

(6)items 和 iteritems:將所有的字典項以列表方式返回,但返回時沒有特殊的順序。

iteritems 大致相同,但是會返回一個迭代器對象,而不是列表。很多情況下都會使用iteritems更高效。

(7)keys 和 iterkeys:keys方法將字典中的鍵以列表的形式返回,iteritems方法返回針對鍵的迭代器。

(8)pop方法:獲得對應於給定鍵的值,然後將這個key-value從字典中移除。

(9)popitem方法:彈出列表中的隨機的項。

[說明] 此方法 類似list.pop,區別在於 list.pop 會彈出列表的最後一個元素。

(10)setdefault方法:類似get方法。能夠獲得與給定鍵相關聯的值,還能在字典中不含有給定鍵的情況下設定相應的鍵值。

 

(11)update方法:利用一個字典項更新另外一個字典。提供的字典中的項會被添加到舊的字典中,若有相同的鍵則會進行覆蓋。

(12)values 和 itervalues:以列表的形式返回字典中的值(itervalues返回值的迭代器)。與返回鍵的列表不同的是,返回值的列表中可以包含重複的元素。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章