- 創建:字典可嵌套
{key1:value1,key2:value2}
說明:字典是由多個鍵以及其對應的值組成的鍵值對組成的,字典以左大 括號開始,並以右大括號結束,鍵與值之間用冒號分隔,鍵值對兒之間用 逗號分隔;
注意:字典中的鍵是唯一的 - 基本操作
通用的有:
len[d] , d[k] = v , del d[k] , k in d
特點:
第一點:鍵(key)的類型任意
第二點:自動添加,key不存在的時候自動添加
第三點 : 成員資格, k in d 找的是key,不是值value,而list中v in l 找的是value 字典方法:
clear:
說明:用於清除字典中全部的鍵值對兒,調用完該方法後,原字典變成一 個空字典;
注意:該方法直接操作原字典,調用後不返回值(或者說直接返回 None )get:
說明:是個更寬鬆的訪問字典項的方法,如果鍵在字典中,則返回值, 如果不在,返回空,也可以給不存在的鍵指定默認值
說明:可以檢查字典中是否含有給出的鍵,python3中已經 不 包含此 項,可以用 k in dict 的方式代替items和iteritems:
說明:items以列表方式返回字典中的鍵值對,iteritems以迭代器對象 返回鍵值對兒(Python3中不再支持)keys和iterkeys:
說明:返回字典中的 鍵,iterkeys返回鍵的迭代器- pop:
用於獲取給定鍵的值,並將該鍵值對從字典中移除 - popitem:
說明:用於隨機彈出字典中的鍵值對兒;可以用於清除一個字典 - update:
說明:將新字典中的鍵值對兒更新到原字典中,如果新字典中有的鍵值 對兒,原字典中沒有,則會在原字典中增加新鍵值對兒; - values和itervalues:
參考上面的keys,items - copy和deepcopy:
說明:用於創建一個新的字典,用兩種複製方法:copy和deepcopy
注意:
copy在複製過程中,如果字典中的 值 對象是複雜對象,如列表, 字典等等,則拷貝完後,新的字典中的 值 指向的還是原字典中的 對象,所以修改新對象中的 值 ,同時也是修改原字典中的值,但 是如果字典中的對象是普通類型,如是數字,字符串等,則修改新字 典不會影響原字典。
copy 淺層複製
deepcopy 深層複製
例子:
1: #copy的用法和效果
2: >>> x = {'Name' : 'Bill', 'Colors': {'red', 'green', 'blue'}}
3: >>> y = x.copy()
4: >>> y
5: {'Colors': ['blue', 'green', 'red'], 'Name': 'Bill'}
6: #刪除顏色列表中的 ‘red’
7: >>> x['Colors'].remove('red')
8: >>> x
9: {'Colors': ['blue', 'green'], 'Name': 'Bill'}
10: #y字典中的顏色列表也發生的改變
11: >>> y
12: {'Colors': ['blue', 'green'], 'Name': 'Bill'}
13: >>>
14:
15:
16: #deepcopy的用法和效果
17: >>> from copy import deepcopy
18: >>> x = {'colors':['red','green','blue'],'name':'Bill'}
19: >>> x
20: {'colors': ['red', 'green', 'blue'], 'name': 'Bill'}
21: #將x深拷貝給y
22: >>> y = deepcopy(x)
23: >>> y
24: {'colors': ['red', 'green', 'blue'], 'name': 'Bill'}
25: #修改x
26: >>> x['colors'].remove('red')
27: >>> x
28: {'colors': ['green', 'blue'], 'name': 'Bill'}
29: #y沒有發生改變
30: >>> y
31: {'colors': ['red', 'green', 'blue'], 'name': 'Bill'}
32: >>>
33: 、`