字典的定義
- 字典是另外一種可變容器模型,且可存儲任意類型對象;使用鍵-值(key-value)存儲,具備極快的查找速度;
字典的每一個鍵值(key=>value)對用冒號(:)分割,每一個對之間用逗號(,)分割,整個字典包括在花括號({})中
語法格式:{ key1 : value1, key2 : value2, key3 : value3 ...}
users={' 張三 ' : 18 , ' 李四 ' : 19 , ' 王五 ' : 20 , ' 趙六 ' : 19}
- 字典的鍵必須是惟一的,而且值的數據類型是不可變的,但值可使任意的或者重複的;
# 編號做爲鍵,鍵惟一,值可變
users={ 1 :' 張三 ' , 2 :' 李四 ' , 3 :' 王五 ' , 4 :' 張三 ' }
訪問字典裏的值
dict = {'name' : ' SiberiaDante ' , ' age ' : 18 , ' address' : ' China '}
print(dict['name'] # 結果 :SiberiaDante
修改字典
dict = {'name' : ' SiberiaDante ' , ' age ' : 18 , ' address' : ' China '}
print(dict['age']) # 輸出:18
dict [ ' age ' ] = 20
print(dict['age']) # 輸出: 20
dict = {'name' : 'SiberiaDante' , 'age' : 18 , 'address' : 'China'}
print(dict) # 結果 :{'name': 'SiberiaDante', 'age': 18, 'address': 'China'}
dict['language']='Python'
print(dict) # 結果 : {'name': 'SiberiaDante', 'age': 18, 'address': 'China','language':'Python'}
刪除字典
dict = {'name' : 'SiberiaDante' , 'age' : 18 , 'address' : 'China'}
print(dict) # 結果 : {'name': 'SiberiaDante', 'age': 18, 'address': 'China'}
del dict['name']
print(dict) # 結果 : { 'age': 18, 'address': 'China'}
dict = {'name' : 'SiberiaDante' , 'age' : 18 , 'address' : 'China'}
del dict
dict = {'name' : 'SiberiaDante' , 'age' : 18 , 'address' : 'China'}
print(dict) # 結果 : {'name': 'SiberiaDante', 'age': 18, 'address': 'China'}
dict.clear()
print(dict) # 結果:{}
字典內置函數&方法
len(dict) 計算字典元素個數,即鍵的總數。
str(dict) 輸出字典,以可打印的字符串表示。
type(variable) 返回輸入的變量類型,若是變量是字典就返回字典類型。
dict.clear() 刪除字典內全部元素
dict.copy() 返回一個字典的淺複製
dict.fromkeys() 建立一個新字典,以序列seq中元素作字典的鍵,val爲字典全部鍵對應的初始值
dict.get(key, default=None) 返回指定鍵的值,若是值不在字典中返回default值
key in dict 若是鍵在字典dict裏返回true,不然返回false
dict.items() 以列表返回可遍歷的(鍵, 值) 元組數組
dict.keys() 以列表返回一個字典全部的鍵
dict.setdefault(key, default=None) 和get()相似, 但若是鍵不存在於字典中,將會添加鍵並將值設爲default
dict.update(dict2) 把字典dict2的鍵/值對更新到dict裏
dict.values() 以列表返回字典中的全部值
pop(key[,default]) 刪除字典給定鍵 key 所對應的值,返回值爲被刪除的值。key值必須給出。 不然,返回default值。
popitem() 隨機返回並刪除字典中的一對鍵和值(通常刪除末尾對)。
字典和列表對比
- 和list比較,dict有如下幾個特色:
- 查找和插入的速度極快,不會隨着key的增長而變慢;
*須要佔用大量的內存,內存浪費多;
- 和dictionary相比,list的特性:
- 查找和插入的時間隨着元素的增長而增長;
- 佔用空間小,浪費內存不多;