一. 字典的簡單介紹
字典(dict)是python中唯一的一個映射類型.他是以{ }括起來的鍵值對組成. 在dict中key是 唯一的. 在保存的時候, 根據key來計算出一個內存地址. 然后將key-value保存在這個地址中. 這種算法被稱為hash算法
已知的可哈希(不可變)的數據類型: int, str, tuple, bool
不可哈希(可變)的數據類型: list, dict, set
語法 :
{key1: value1, key2: value2....}
注意: key必須是不可變(可哈希)的. value沒有要求.可以保存任意類型的數據
dict保存的數據不是按照我們添加進去的順序保存的. 是按照hash表的順序保存的. 而hash表不是連續的. 所以不能進行切片工作. 它只能通過key來獲取dict中的數據
二. 字典的增刪改查和其他相關操作
1. 增加
# 增加 #如果dict中沒有這個key,就會新增一個key_value的組合進dict dic = {'name':'武松'} dic['行者'] = '武松' print(dic) dic.setdefault('九紋龍','') print(dic)
2. 刪除
# 刪除 dic = {'及時雨':'宋江','玉麒麟':'盧俊義','智多星':'吳用'} ret = dic.pop('及時雨') #如果dic沒有這個key,則報錯.反之,返回被刪value print(dic) print(ret) del dic['玉麒麟'] #隨機刪除 ret = dic.popitem() #清空字典所有內容 dic.clear() print(dic)
3. 修改
#修改 dic = {'及時雨':'宋江','玉麒麟':'盧俊義','智多星':'吳用'} dic1 = {'及時雨':'宋江','玉麒麟':'楊雄','智多星':'吳用'} dic.update(dic1) # 把dic1中的內容更新到dic中. 如果key重名. 則修改替換. 如果不存 在key, 則新增. dic = {'age':18,'name':'jiam','money':10000} dic['age'] = dic['age'] - 1 #通過key來進行修改 print(dic)
4. 查詢
查詢⼀一般⽤用key來查找具體的數據.
#查詢 dic = {'age':18,'name':'jiam','money':10000} print(dic['name']) print(dic['hobby']) #通過key進行查詢,如果key不存在,則報錯 print(dic.get('hobby')) #key不存在,返回默認值None,也可新設置默認值 # 1. 首先判斷原來字典有沒有這個key。如果沒有,執行新增. # 2. 用這個key去字典中查詢,返回查到的結果 dic.setdefault('hobby','籃球') ret = dic.setdefault('name') print(ret) print(dic)
5. 其他相關操作
# 解構,解包 a,b = (1,2) print(b)
dic = {'及時雨':'宋江','玉麒麟':'盧俊義','智多星':'吳用'} print(dic.keys()) #打印所有的key print(dic.values()) #打印所有的value print(dic.items()) for a,b in dic.items(): print(a) for a in dic: print(a)#直接循環,打印的是key print(dic[a])
#修改
dic = {'及時雨':'宋江','玉麒麟':'盧俊義','智多星':'吳用'}
dic1 = {'及時雨':'宋江','玉麒麟':'楊雄','智多星':'吳用'}
# 把dic1中的內容更新到dic中. 如果key重名. 則修改替換. 如果不存 在key, 則新增.
dic = {'age':18,'name':'jiam','money':10000}
dic['age'] = dic['age'] - 1 #通過key來進行修改
print(dic)