萬惡之源 基本資料型別之字典 dict

2022-05-19 17:22:33 字數 1785 閱讀 2518

一. 字典的簡單介紹

字典(dict)是python中唯一的乙個對映型別.他是以括起來的鍵值對組成. 在dict中key是

唯一的. 在儲存的時候, 根據key來計算出乙個記憶體位址. 然後將key-value儲存在這個位址中.

這種演算法被稱為hash演算法, 所以, 切記, 在dict中儲存的key-value中的key'必須是可hash的,

如果你搞不懂什什麼是可雜湊, 暫時可以這樣記, 可以改變的都是不可雜湊的,

那麼可雜湊就意味著不可變. 這個是為了了能準確的計算記憶體位址而規定的.

已知的可雜湊(不可變)的資料型別: int, str, tuple, bool

不可雜湊(可變)的資料型別: list, dict, set

語法 :

key必須是不可變(可雜湊)的. value沒有要求.可以儲存任意型別的資料

dict儲存的資料不是按照我們新增進去的順序儲存的. 是按照hash表的順序儲存的. 而hash表

不是連續的. 所以不能進行切片工作. 它只能通過key來獲取dict中的資料

1. 增加

dic['name'] = '周潤發' # 如果dict中沒有出現這個key, 就會新增乙個key-value的組合進dict,如果存在,則之前的會被覆蓋

dic.setdefault("李嘉誠", "房地產") # 如果dict中已經存在了. 那麼setdefault將不會起作用

2. 刪除

dic.pop("jay") #刪除'jay'

del dic["jay"]

ret = dic.popitem() #隨機刪除

dic.clear() #清空字典

dict中的元素在迭代過程中是不允許進行刪除的,

把要刪除的元素暫時先儲存在乙個list中, 然後迴圈list, 再刪除

3. 修改

dic.update(dic1) # 把dic1中的內容更新到dic中. 如果key重名. 則修改替換. 如果不存在key, 則新增.

4. 查詢

查詢一般用key來查詢具體的資料.

print(dic['name'])

# print(dic['sylar']) # 報錯

print(dic.get("ok"))

print(dic.get("sylar")) # none

print(dic.get("sylar", "牛b")) # 牛b

dic.keys() # 將所有的key值查出來

dic.values() # 將所有的value 查出來

dic.items() #將字典以列表的形式展示出來

for key, value in dic.items(): # ?? 這個是解構

print(key, value)

e, f = [1, 2, 3] # 解構的時候注意數量量必須匹配

字典的巢狀

同樣採用降維操作.一層一層的看就好.

迴圈len(li)次, 然後從後往前刪除

或者. 用另乙個列表來記錄你要刪除的內容. 然後迴圈刪除

注意: 由於刪除元素會導致元素的索引改變, 所以容易出現問題. 盡量不要再迴圈中直接去刪除元素.

可以把要刪除的元素新增到另乙個集合中然後再批量刪除.

dict中的fromkey(),可以幫我們通過list來建立乙個dict

dic = dict.fromkeys(["jay", "jj"], ["周杰倫", "麻花藤"])

print(dic)

結果:前面列列表中的每一項都會作為key, 後面列列表中的內容作為value. 生成dict

05 萬惡之源 基本資料型別 dict

1.字典的簡單介紹 2.字典增刪改查和其他操作 3.字典的巢狀 一.字典的介紹 字典 dict 是python中唯一的乙個對映型別.他是以括起來的鍵值對組成.在dict中key是唯一的.在儲存的時候,根據key來計算出乙個記憶體的位址.然後將key value儲存在這個位址中.這種演算法被稱為has...

基本資料型別 字典

字典 dict 是python中唯 的 個對映型別.他是以括起來的鍵值對組成.在dict中key是 唯 一的.在儲存的時候,根據key來計算出 乙個記憶體位址.然後將key value儲存在這個位址中.這種演算法被稱為hash演算法,所以,切記,在dict中儲存的key value中的key 必須是...

Python基本資料型別之字典

1.什麼是字典 2.字典的定義和初始化d dict 定義字典 d d print d 輸出 d dict a 1,b 2 print d 輸出 d dict a 1 b 2 print d 輸出 d dict.fromkeys range 5 hello print d 輸出 3.字典的訪問d d....