字典(dict)是python中唯⼀的⼀個對映型別.他是以括起來的鍵值對組成. 在dict中key是 唯⼀一的. 在儲存的時候, 根據key來計算出⼀乙個記憶體位址. 然後將key-value儲存在這個位址中. 這種演算法被稱為hash演算法, 所以, 切記, 在dict中儲存的key-value中的key'必須是可hash的, 如果你搞不懂什什麼是可雜湊, 暫時可以這樣記, 可以改變的都是不可雜湊的, 那麼可雜湊就意味著不可變. 這個是為了了能準確的計算記憶體位址⽽而規定的.
已知的可雜湊(不可變)的資料型別: int, str, tuple, bool 不可雜湊(可變)的資料型別: list, dict, set
語法 :
注意: key必須是不可變(可雜湊)的. value沒有要求.可以儲存任意型別的資料
# 合法
dic =
print(dic[123])
print(dic[true])
print(dic['id'])
print(dic['stu'])
print(dic[(1, 2, 3)])
# 不合法
# dic = # list是可變的. 不不能作為key
# dic = : "哈哈哈"} # dict是可變的. 不不能作為key
dic = : '呵呵呵'} # set是可變的, 不不能作為key
dict儲存的資料不是按照我們新增進去的順序儲存的. 是按照hash表的順序儲存的. ⽽而hash表 不是連續的. 所以不能進⾏行行切片⼯工作. 它只能通過key來獲取dict中的資料
dic = {}
dic['name'] = '周潤發' # 如果dict中沒有出現這個key, 就會新增⼀個key-value的組合進dict
dic['age'] = 18 print(dic)
# 如果dict中沒有出現過這個key-value. 可以通過setdefault設定預設值
dic.setdefault('李嘉誠') # 也可以往⾥裡里⾯面設定值.
dic.setdefault("李嘉誠", "房地產") # 如果dict中已經存在了. 那麼setdefault將不會 起作用
print(dic)
ret = dic.pop("jay")
print(ret)
del dic["jay"] print(dic) # 隨機刪除.
ret = dic.popitem() # 清空字典中的所有內容 dic.clear()
dic =
dic1 =
dic.update(dic1) # 把dic1中的內容更更新到dic中. 如果key重名. 則修改替換. 如果不不存 在key, 則新增.
print(dic)
print(dic1)
查詢一般⽤用key來查詢具體的資料.
print(dic['name'])
# print(dic['sylar']) # 報錯
rint(dic.get("ok"))
print(dic.get("sylar")) # none
print(dic.get("sylar", "⽜牛b")) # ⽜牛b
dic =
print(dic.keys()) # dict_keys(['id', 'name', 'age', 'ok']) 不不⽤用管它是什什麼.當 成list來⽤用就⾏行行
for key in dic.keys():
print(key) print(dic.values())
# dict_values([123, 'sylar', 18, '科⽐比']) 一樣. 也當 list來⽤用
for value in dic.values():
print(value)
print(dic.items()) # dict_items([('id', 123), ('name', 'sylar'), ('age', 18), ('ok', '科比')]) 這個東西也是list. 只不過list中裝的是tuple for key, value in dic.items(): # ?? 這個是解構
print(key, value)
a, b = 1, 2
print(a, b)
(c, d) = 3, 4
print(c, d)
e, f = [1, 2, 3] # 解構的時候注意數量必須匹配
print(e, f)
dic1 =
print(dic1.get("wife").get("name"))
print(dic1.get("children"))
print(dic1.get("children")[1])
練習:
dic1 =
1,將name對應的列列表追加⼀乙個元素』wusir』。
2,將name對應的列列表中的alex⾸首字⺟母⼤大寫。
3,oldboy對應的字典加⼀乙個鍵值對』⽼老老男孩』,』linux』。
4,將oldboy對應的字典中的alex對應的列列表中的python2刪除。
Python基本資料型別 字典
字典是python的另一種有序的可變資料結構,且可儲存任意型別物件。字典是一種鍵值對的資料容器,每個鍵值 key value 對用冒號 分割,每個對之間用逗號 分割,整個字典包括在花括號 中。鍵和值兩者一一對應,與表不同的是,詞典的元素沒有順序,不能通過下標引用元素。字典是通過鍵來引用。字典中的鍵必...
基本資料型別 字典 Dictionary
字典是另一種可變容器模型,且可儲存任意型別物件。值可以取任何資料型別,也可以巢狀多層,但鍵必須是不可變的,如字串,數字或元組,這些鍵會轉為hash值儲存起來 鍵不可以是列表,布林值,字典,因為這些不可以轉為hash值儲存起來 字典是無序的,每次用print函式輸出的結果順序都不一定相同。字典的每個鍵...
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....