字典——dict
字典是無序,可變的資料型別。
字典:用於儲存資料,儲存大量資料,字典要比列表快;將資料和資料之間進行關聯。
定義:dic = #每個 鍵值對 以逗號分隔成乙個元素
字典的值: 可以是任意的資料型別。
字典的鍵:必須是可雜湊的——不可改變的資料型別;要求鍵唯一,如果有重複的,則後面的值會把前面的值覆蓋掉。
(注:可雜湊的 -- 不可變的資料型別(數字、字串、布林值) -- 避免雜湊衝突使用了 「開放定址法」 )
(不可雜湊的 -- 可變的資料型別 (列表、字典) )
增:dic =
dic["鍵"] = 值 # 暴力新增
dic["d"] = 40
dic.setdefault(鍵,值) # 通過鍵去字典中查詢,如果鍵不存在執行新增,如果鍵存在則不會新增
dic.setdefault("c",40) # "c" 存在,不新增
dic.setdefault("f",40) # "f"不存在,新增到字典
刪:del dic["a"] # 通過字典的鍵,刪除鍵值對
dic.pop("b") # 通過字典的鍵,刪除鍵值對,有返回值,返回的是被刪除的值
dic.clear() # 清空字典
改:dic["b"] = 200 #字典中沒有此鍵值對的時候就是新增,當鍵在字典中存在的時候就是修改 # "有則改,無則加"
dic.update(dic1) # 更新,裡面必須放字典。update括號中的字典(dic1)級別高於前面的字典(dic)
# 執行:先將具有相同鍵的內容覆蓋,再在字典末尾新增dic沒有的鍵值對
查:for i in dic:
print(i) # for 迴圈獲取的是鍵值對的鍵
dic.get(鍵) # 通過鍵獲取值,如果鍵不存在字典中會返回 none
dic[鍵] # 通過鍵獲取值,如果鍵不存在字典中會報錯!
其他操作:
dic =
1.for i in dic:
print(i,dic.get(i)) # 迴圈輸出所有的鍵和值 a 1 b 2 c 3
2. keys() 所有的鍵
print(dic.keys()) # 高仿列表,獲取的是字典中所有的鍵 -- dict_keys(['a', 'b', 'c']) 支援for迴圈 不支援索引
for i in dic.keys():
print(i) # 迴圈輸出所有的鍵 a b c
print(dic.keys()[0]) # 報錯 'dict_keys' object does not support indexing(不支援索引)
3. values() 所有的值
print(dic.values()) # 高仿列表,獲取的是字典中所有的值 ——dict_values([1, 2, 3])
print(list(dic.values())) # 獲取的是字典中所有的值,轉換成 真的列表
4. items() 所有的鍵和值
print(dic.items()) # 高仿列表,獲取的是字典中所有的鍵和值,存放在元組中 ——dict_items([('a', 1), ('b', 2), ('c', 3)])
for i in dic.items():
print(i[0],i[1]) #將鍵和值從元組中迴圈列印出 a 1 b 2 c 3
5. 將字典中的值放到列表中
lst =
for i in dic:
print(lst)
解構:a = 10
b = 20
a,b = b,a
print(a,b) # 實現a,b數字的交換,列表、元組都可以
a,_,b = (3,4,5)
print(a,b) # 3 5 等號後邊的值和前面的變數名要一一對應(假如只要a,b)
a = 10,12 # 本質就是乙個元組
print(a) # (10,12)
a,b = "23"
print(a,b) # 2 3
a,b =
print(a,b) #輸出 1 2(鍵)
for i in dic.items():
print(i) # 獲取的是每個元素,結果:(鍵,值)
for k,v in dic.items():
print(k,v) # 獲取每個元素的鍵和值
字典的巢狀:
查詢的時候一次一次的通過鍵查詢。
dic[鍵]
dic = }}
print(dic[1002]["汪峰"]["前妻2"][1]) # 熊二
python內建字典 python中字典的內建方法
python字典包含了以下內建方法 功能 字典 clear 函式用於刪除字典內所有元素。語法 dict.clear 引數 無 返回值 沒有任何返回值。dict print 字典長度 d len dict 字典長度 2 dict.clear print 字典刪除後長度 d len dict 字典刪除後...
python中建立類role 初識Python類
吐槽 學習物件導向就像你追乙個女神一樣,剛剛有點感覺了,過幾天又陷入絕望的感覺,很蛋疼。類的語法 classperson object print learning class test person test就是類person的例項化物件 例項化,就是以person類為模板,在記憶體裡開闢一塊空間...
python字典的小程式
coding utf 8 古老的rot13加密法 def rot13encode str arr str str.lower for i in range len str if str i a and str i z ordnum ord str i if ordnum ord m ord將字元轉化...