字典,在python語言中叫字典,在其餘語言中叫鍵值對數據,關鍵字是dict,dic = {'鍵':'值'},可用來存儲數據,在數據查找中,字典的查找更快一些;字典是可變的數據類型python
***
========================================
可變數據:list,dict,set
不可變數據:int,str,bool值,tuple,元祖
========================================
***app
*****unhashable 不可哈希的,就是可變的數據;可變的數據不能哈希;spa
不可變的數據能哈希
鍵: 必須是不可變數據類型; 並且不能重複,重複的話就會把值覆蓋;
值: 能夠隨意;
經過鍵去查找值code
增:
dic[鍵] = '值' (沒有的時候叫增)
dic.setdefault(鍵,'')***
先在字典中經過鍵去查有沒有值,沒有就是None
若是有值,就不進行添加
若是是None,就添加值對象
(ps:字典和字典不能加,字典自己是無序的,但Python3.6版本以上字典默認有序,怎麼寫就怎麼打印)blog
刪: (字典中沒有remove)
del dic 刪除整個字典
del.[鍵] 經過鍵刪除
dic.pop( ) 指定鍵刪除,有返回值,返回的是被刪除的值
dic.clear( ) 清空
dic.popitem( ) 隨機刪除;py3.6刪除最後一個,py3.5中隨機刪除rem
改:get
dic.update({'':'','':''}) 更新,update括號中放一個字典 兩個字典中都沒有同樣的就是合併 dic1 = {"11":"AA","22":"BB"} dic2 = {"33":"CC","44":"DD"} dic1.update(dic2) print(dic1) 結果是dic1 = {"11":"AA","22":"BB","33":"CC","44":"DD"} 若是被更新的內容在更新的內容中,值就會被覆蓋 dic1 = {"11": "AA", "22": "BB"} dic2 = {"11":"CC","44":"DD"} print(dic1) 結果是dic1 = {"11":"CC","22":"BB","44":"DD"} dic[鍵] = '值' ps: 字典中沒有的時候叫增,有這個鍵就是字典的改 dic = {"11":"22","33":"44"} dic["11"] = ""55" print(dic) 結果爲{"11":"55","33":"44"}
查:
經過鍵查找 print(dic[鍵]) 若是鍵不存在就報錯
print(dic.get(鍵)) 若是鍵不存在不報錯,返回None
dic.setdefault(鍵) 不存在返回Nonehash
dic = {}it
循環打印字典的鍵:
for i in dic:或者for i in dic.keys():
print(dic.keys)==> dict_keys(['33','66']) keys,獲取鍵,高仿列表
循環打印字典的值:
for i in dic:或者for i in dic.values():
print(dic.values)==> dict_values(['','']) values獲取值,高仿列表
循環打印字典的鍵值對(解構):
for i in dic:或者for i in dic.items():
print(dic.items) items獲取鍵值,以元祖的形式顯示
for k,v in dic.items:
print(k)
print(v) 在取出鍵值對時直接作了解構
dic.get(鍵,'提示語句') 若是沒有,就會返回提示語句 dic.pop(鍵,'提示語句') 若是沒有,就會返回提示語句 dic3 = dict.fromkeys([1,2,3,4,5,6],'好嗨喲') 快速補充,若是不寫,默認爲None dic3 = dict.fromkeys([1,2,3,4,5,6],[1,2,3]) dic3[3].append( ),添加的內容是全部都加 第一個參數爲鍵,是可迭代對象 第二個參數爲值,值無所謂 是由於建立新字典的值用的都是一個
例: se = {1,25,6,3,58,1,3,5,86,8,4,2,1}
set(自然去重),存出一些數據 跟列表有點像,和字典更像(單個的)
不能使用下標,是無序的
lst = [1,2,3,4,5,8,2,1,4,3,6]
print(lst(set(lst)))
增:
se.add()
se.update() update括號中是可迭代對象
刪:
se.pop() 集合中默認刪除第一個
se.remove() 經過內容刪除
查詢:
for循環
s1 = {'劉能','趙四','皮革廠'} s2 = {'劉科長','馮鄉長','皮革廠'} 交集: s1&s2 並集: s1|s2 差集: s1-s2 反差集: s1^s2 子集: s1<s2 超集: s2>s1