第五節 一、字典 python的數據結構之一 字典 —— dict 定義:dic = {"key":"dajjlad"} 作用:存儲數據,大量,將數據和數據起到關聯作用 字典是可變的數據類型,無序的 所有的操作都通過鍵 # 鍵:必須是不可變的數據類型(可哈希),且唯一 不可哈希就是可變數據類型# 值 ...
一、字典
-
python的數據結構之一
-
字典 —— dict
-
定義:dic = {"key":"dajjlad"}
-
作用:存儲數據,大量,將數據和數據起到關聯作用
-
字典是可變的數據類型,無序的
-
所有的操作都通過鍵
# 鍵:必須是不可變的數據類型(可哈希),且唯一 不可哈希就是可變數據類型
# 值:任意
dic = {"10":"蘋果手機", # 鍵 值 對
"11":"蘋果手機",
"15”:"小米手機",
"15":"華為手機",
(1,):"oppo手機",
}
1.1字典的增:
-
暴力添加
dic = {'a': '上天', 'b': ['入地', '通幽'], 'c': '吃飯', 'd': '救苦救難'}
dic["二狗"] = "我的太陽" # 添加的是一個鍵值對
dic["騰格爾"] = ["來自草原的沙塵暴","音樂界的泥石流"]
# 新的鍵如果在字典中沒有,那會添加到最後字典的後面;
# 如果有,那將新值替換舊值 -
有則不添加,無則添加
dict.setdefaullt(鍵,值)
dic = {'a': '上天', 'b': ['入地', '通幽'], 'c': '吃飯', 'd': '救苦救難'}
dic.setdefault("b",["沿著","江山","起起","伏"]) # 鍵存在,所以不添加
dic.setdefault("武器",["刀","槍","棍","棒","斧"])# 鍵為新,在最後一個鍵值對後面添加
# setdefault 添加分為2步:
# 1,先查看鍵是否在字典
# 2,不存在的時候進行添加
1.2字典的刪除:
-
pop(鍵) —— 通過鍵刪除,具有返 回值
dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
dic.pop("1") # 刪除了 "1":"上樹" 這個鍵值對 -
clear() —— 清空
dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
dic.clear() # 清空該字典,保留空字典 -
del —— 刪除
del dict —— 刪除的是容器
del dict["鍵"] —— 通過鍵刪除
dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
del dic # 刪除的是整個字典
del dic["3"] # 只刪除 "3":"開黑" 這個鍵值對
1.3字典的改
-
字典名[鍵] = 值
# 和字典的暴力添加一樣
dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
dic["2"] = "星宿老仙,法力無邊" # 直接定位鍵,修改值 -
字典名.update(新字典)——在最後一個鍵值對後面,迭代添加
dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
dic1 = {"天山派":"星宿老仙,法力無邊","少林":"龍抓手"}
dic.update(dic1)
print(dic) #{'1': '上樹', '2': '遛狗', '3': '開黑', '4': '打團', '天山派': '星宿老仙,法力無邊', '少林': '龍抓手'}
dic1.update(dic)
print(dic1)#{'天山派': '星宿老仙,法力無邊', '少林': '龍抓手', '1': '上樹', '2': '遛狗', '3': '開黑', '4': '打團'}
1.4字典的查
-
字典名.get(鍵,找不到的換回None)
dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"} print(dic.get("5")) # 返回 None print(dic.get("5","找不到啊")) # 返回 找不到啊 print(dic.get("2")) # 返回 遛狗
-
字典名.setdefault(鍵)
dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"} print(dic.setdefault("3")) # 返回開黑 print(dic.setdefault("77")) # 返回 None print(dic["4"]) # 也可直接查找,沒有就是報錯
-
-
字典名.keys() ——所有的鍵,獲取到的是一個高仿列表
-
字典名.values() —— 所有的值,獲取到的是一個高仿列表
-
intems() —— 鍵值
-
註意:高仿列表支持迭代,不支持索引
dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"} print(dic.keys()) # 所有的鍵,獲取到的是一個高仿列表 print(dic.valuse()) # 所有的值,獲取到的是一個高仿列表
-
-
-
for迴圈,返回的是字典的鍵
dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"} for i in dic: print(i) # 迴圈出的是字典的鍵
1.5解構
-
在字典中返回的是鍵
a,b = 1,2 print(a,b) # 結果: # 1 2 a,b = ('你好','世界') print(a,b) # 結果: # 你好 世界 a,b = ['你好','大飛哥'] print(a,b) # 結果: # 你好 大飛哥 a,b = {'汪峰':'北京北京','王菲':'天後'} print(a,b) # 結果: # 汪峰 王菲
-
解構在字典中的作用:
dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"} for k,v in dic.items(): print('這是鍵',k) print('這是值',v) """ 結果: 這是鍵 1 這是值 上樹 這是鍵 2 這是值 遛狗 這是鍵 3 這是值 開黑 這是鍵 4 這是值 打團 """
-
*__是一個萬能值,萬能接受
lis = [1,2,3,4,5,6,7,8]# 取出來1,2,5 a,b,c,d,e,*__ = lis print(a,b,e) # 結果 1 2 5
-
1.6字典的嵌套
dic = {11:{1:{"秦":"嬴政","秦二世","李斯","商鞅","章邯","蒙恬"},
2:{"漢":"劉邦","韓信","衛青","霍去病"}
3:{"三國":"魏","蜀","吳"}},
22:{1:{"歌唱家":{"劉歡":["我和你","彎彎的月亮"]}},
2:{"鄧紫棋":["泡沫","喜歡你","天堂","光年之外"]},
3:{"騰格爾":["隱形的翅膀","卡路里","日不落"]}},
33:{1:{"蔡徐坤":{"唱":["雞你太美"],"跳":["鋼管舞"],"rap":["大碗面"],"籃球":("NBA形象大使")}},
2:{"JJ":{"行走的CD":["江南","曹操","背對背擁抱","小酒窩","不潮不花錢"]}},
3:{"Jay":{"周董":["菊花台","雙節棍","霍元甲"]}}},
44:{1:{"韋小寶":{"雙兒":"刺客","建寧":{"公主":{"吳三桂":"熊"}},"龍兒":{"教主老婆":"教主"}}}}
}
print(dic[201][1]["韋小寶"]["建寧"]["公主"]["吳三桂"])# 熊
print(dic[103][1]["蔡徐坤"]["跳"][0])# 鋼管舞
print(dic[102][2]["鄧紫棋"][1]) # 黑風雷