字典是另一種可變容器模型,且可存儲任意類型對象,下標從0開始,最后一個為-1。
字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
鍵必須是唯一的,但值則不必,字典是無序的。
值可以取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組。
一個簡單的字典實例:
dict = {'aaa': '23', 'bb': '882', 'ccc': '2358'}
也可如此創建字典:
dict1 = { 'ddd': 1234 };
dict2 = { 'ddd': 1235, 98.6: 37 };
1. 增加
d['height'] = 170
d.setdefault('age','21') #顯示d這個字典的'age'值的內容,因為字典有,所以不會去設置它
1 #字典: key-value, 取值方便,速度快,key不能重復 2 d = {'name':'nancy', 3 'age':'20', 4 'sex':'female', 5 'addr': 'nb' 6 } 7 #增加 8 d['height'] = 170 9 print(d) # -> {'sex': 'female', 'age': '20', 'name': 'nancy', 'height': 170, 'addr': 'nb'} 10 #字典是無序的 11 value = d.setdefault('age','21') #顯示d這個字典的'age'值的內容,因為字典有,所以不會去設置它 12 print(value) # 20 13 value1 = d.setdefault('weight',98) ##顯示d這個字典的'weight'值的內容,因為字典沒有,所以設置為98了 14 print(value1) #-> 98 15 print(d) # -> {'height': 170, 'name': 'nancy', 'age': '20', 'addr': 'nb', 'sex': 'female', 'weight': 98}
2. 刪除
d.pop('height')#刪除某個key,這個比較常用
d.popitem() # 隨機刪除一個
del d['name']#刪除某個key
d.clear()#清空字典
1 #字典: key-value, 取值方便,速度快,key不能重復 2 d = {'name':'nancy', 3 'age':'20', 4 'sex':'female', 5 'addr': 'China', 6 'height': '180' 7 } 8 #刪除 9 d.pop('height')#刪除某個key,這個比較常用 10 print(d) # -> {'sex': 'female', 'age': '20', 'name': 'nancy', 'addr': 'China'} 11 d.popitem() # 隨機刪除一個 12 print(d) #-> {'age': '20', 'name': 'nancy', 'addr': 'China'} 13 del d['name']#刪除某個key 14 print(d) # -> {'sex': 'female', 'addr': 'China'} 15 d.clear()#清空字典 16 print(d) # -> {}
3. 修改
d['height'] = 170 #如果key 存在的話,修改它的值,如果不存在的話新增
1 #字典: key-value, 取值方便,速度快,key不能重復 2 d = {'name':'nancy', 3 'age':'20', 4 'sex':'female', 5 'addr': 'China', 6 'height': '180' 7 } 8 #修改 9 d['height'] = 170 #如果key 存在的話,修改它的值,如果不存在的話新增 10 print(d) # -> {'addr': 'China', 'name': 'nancy', 'height': 170, 'age': '20', 'sex': 'female'}
4. 查看
通過方括號[]取值查看
1 #字典: key-value, 取值方便,速度快,key不能重復 2 d = {'name':'nancy', 3 'age':'20', 4 'sex':'female', 5 'addr': 'China', 6 'height': '180' 7 } 8 #查看 9 print(d['name'])#如果寫了不存在的key,會報錯 -> nancy 10 print(d['age']) # -> 20 11 print(d.get('addr')) # -> China 12 print(d.get('addr1'))#如果get()不到的話,返回None -> None 13 print(d.get('addr2','找不到')) # -> 找不到 14 print(d.keys())#取得所有的key -> dict_keys(['age', 'addr', 'height', 'name', 'sex']) 15 print(d.values())#獲得所有的value -> dict_values(['20', 'China', '180', 'nancy', 'female']) 16 #d.has_key('addr')#python2 里面有這個方法,python3里沒有 17 if 'addr' in d: #判斷key 是否在這個字典里 18 print('addr') # -> addr 19 #if 'addr' in d.keys():
1 for k in d: #取到key 2 print(k) # 打印所有的key值 3 4 print(d.items())#是把字典的key,value 轉成一個二維數組(實際上不是真的二維數組,要使用需強制轉換),性能不好 5 # -> dict_items([('height', '180'), ('sex', 'female'), ('addr', 'China'), ('age', '20'), ('name', 'nancy')]) 6 res = list(d.items()) 7 print(res[0]) # ->('height','180') 8 9 for k,v in d.items():#可以同時把key 和value 取出來 10 print(k,v) 11 #height 180 12 #sex female 13 #addr China 14 #age 20 15 #name nancy 16 17 for k in d:#性能好,保留了字典原有的特性 18 print(k,d.get(k)) 19 # height 180 20 # sex female 21 # addr China 22 # age 20 23 # name nancy
