python學習筆記(三)、字典
字典是一種映射類型的數據類型。辣麽什麽是映射呢?如果看過《數據結構與算法》這一本書的小夥伴應該有印象(我也只是大學學習過,嘻嘻)。
映射:就是將兩個集合一 一對應起來,通過集合a的值,集合b有且只有一個與之對應。字典是Python中唯一的內置映射類型。
1 創建和使用字典
字典以類似於下面的方式表示:
phonebook = {‘A‘:‘a‘,‘B‘:‘b‘,‘C‘:‘c‘}
字典由鍵和其相應的值組成,這種鍵-值對稱為項。每個鍵與值之間用冒號( : )分隔開,每項用逗號分隔,並且在字典以及其他映射類型中,鍵都是獨一無二的的。空字段用 {} 表示。
1.1 函數dict
可以使用函數 dict (與list、tuple和str一樣,dict也是一個類)從其他映射或鍵-值對序列創建字典。
items = [(‘name‘,‘AA‘),(‘age‘,42)] dict(items)
items = [name=‘AA‘,age=42] dict(items)
1.2 字典的基本操作
字典的基本行為同序列有很多類似。
- len(d) 返回字典d包含項的個數
- d[key] 返回與鍵key相關聯的值,當key在字典d中不存在的時候,會報錯。
- d[key]=val 將值val關聯到鍵key,如果鍵key原來存在,則相當於賦值,否則新添加到字典d中。
- del d[key] 刪除鍵為key的項。如果key在字典中不存在,則會報錯。
- key in d 檢查字典d是否包含鍵為key的項。相比於檢查列表是否包含指定值,檢查字典是否包含指定值得效率更高。
1.3 將字符串格式設置功能用於字典
對於字符串,通過format_map可以將格式字符串中的參數使用字典來進行賦值。如:
d = {‘a‘:123,‘b‘:234,‘c‘:345,‘d‘:456} ‘{a} + 111 = {b}‘.format_map(d)
1.4 字典方法
1.4.1 clear
方法clear刪除所有的字典項,對齊進行清空。
1.4.2 copy
方法copy返回一個與原來字典一樣的新字典。但是這個方法執行的是淺復制,只包含值,而非副本。
方法deepcopy執行的是深復制,即同時復制值及包含的所有值。
1.4.3 fromkeys
方法fromkeys創建一個新字典,其中包含指定的鍵,默認每個鍵對應的值都是None。
{}.fromkeys([‘name‘,‘age‘]) / dict.fromkeys([‘name‘,‘age‘]) / dict.fromkeys((‘name‘,‘age‘),‘xxx‘)
1.4.4 get
方法get用於獲取字典中key的值,當key不存在時,不會報錯,返回None。並且當不存在的時候,還可以進行“默認”指定值。
d.get(‘name‘) / d.get(‘name‘,‘name不存在‘)
1.4.5 items
方法items返回一個包含所有字典項的列表,其中每個元素都以(key,value)的形式。且順序不定。
d.items() [(key1,value1),(key2,value2).......]
這種以(key,value)形式返回的類型名叫字典視圖。字典視圖可用於叠代(將在後面介紹)。字典視圖始終是底層字典的反映,即修改了字典的值,字典視圖也會跟著修改。
1.4.6 keys
方法keys返回一個包含字典中鍵的字典視圖。
1.4.7 pop
方法pop獲取與指定鍵相關聯的值,並將該鍵對應的項從字典中刪除。當鍵key不存在時,會報錯。
1.4.8 popitem
方法popitem隨機返回一個字典項的值,並刪除該項。
1.4.9 setdefault
方法setdefault用於向字典中添加指定的鍵-值對,如果存在鍵key,則更新,不存在,則新增。
1.4.10 update
方法update使用一個字典的項來更新另一個字典。如d1.update(d2)。
1.4.11 values
方法values返回一個由字典中的值組成的字典視圖,包含重復值。
python學習筆記(三)、字典