基本資料型別 字典

2021-09-27 00:22:30 字數 2661 閱讀 7139

字典(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....