dicpython
{}"鍵":"值" 別的語言叫"鍵值對數據"面試
鍵:必須是可哈希的類型(不可變更),並且是惟一的函數
值:任意code
字典是無序的:python3.6版本以上會默認定義時的順序,python3.5如下顯示的是隨機順序對象
字典是可變的:索引
1.當輸入一個新的鍵值對以後,字典會先檢查要添加的鍵是否存在內存
若是鍵在字典中存在就不添加,要是不存在就添加rem
刪:get
經過"鍵"進行刪除,pop具備返回值,返回的是被刪除的值it
字典沒有remove
del dic["鍵"] 刪除指定的鍵值對
dic.clear() 清空
print(dic) 刪除整個 字典中的鍵值對
改:
dic["鍵"]="這是值 " 鍵在字典中存在就是修改,不存在就是增長
dic.update(鍵值對,鍵值對) update裏面的字典級別高,會覆蓋掉原來的內容
dic.setdefault("5":5) 鍵不存在就添加,鍵存在就不添加
查:
字典的查詢只能經過鍵尋找值,不能經過值尋找鍵.
dic.setdefault("鍵")
若是鍵在字典中存在就返回對鍵對應的值,若是不存在就報錯
print(dic.get("c","b"))獲取值的時候能夠指定返回的內容(計算和編輯,並賦值),鍵不存在的時候不會報錯
dic = {"1":1,"2":2,"3":3,"4":4}
刪除"2",3種方式
添加"5":5,2種方式
修改:"1":10086
查看"3"的值
dic.del("2")
dic.clear
dic.pop("2")
dic["5"] = 5
dic.update("5":5)
dic["1"] = 10086
dic["3"] 沒有就會報錯
print(dic.keys)
print(dic.values)
for i in dic.key() 高仿列表 :無序無索引
for k,v in dic.items():
print(k,v)
for i in dic:
print(i,dic(i))
for i, k in enumerate(dic,1): #enumerate 第二個參數是起始數字,默認是0
print(i,k)
字典的嵌套:
字典是存儲大量的數據的數據類型,容量比列表還要大
字典在在查找值的時候可以更方便快速
字典可以將數據進行關聯
字典比較消耗內存
有明確的對應關係時,推薦使用字典,字典必定要用明白
list (1,3,4)
tuple
目前所學,字典是不能轉換的
查找字典的嵌套時,按照鍵去一層一層查找
小數據池 面試和解決作題時的困惑
深度拷貝 面試必問
週五考試考到到函數以前
1.字典:
dict -- {} {"key":'value',"a":1}
dic = {}
字典的無序的,字典是可變的 字典的鍵 -- 可哈希(不可變),惟一 字典的值 -- 任意
增: dic["鍵"] = "值" dic.setdefault("鍵","值") # 鍵不存在就添加,存在就不填加. 刪: pop("鍵") del dic["鍵"] dic.clear() 清空 改: dic["鍵"] = "值" dic.update({"a":1,"b":1}) # update(裏邊的級別高),會把以前內容中相同的key對應的值覆蓋 # 沒有的話會填加 查: get("鍵","本身指定返回的內容") # 不存在返回的是None dic["鍵"] #不存在就報錯 dic.setdefault("鍵") # 查詢
其餘方法: for i in dic: print(i) 循環的是字典的鍵
for i in dic.keys(): print(i)
dic.keys() -- 返回的是一個高仿列表 -- 沒有索引 dic.values() -- 返回的是一個高仿列表 -- 沒有索引 dic.items() -- 返回的是一個高仿列表,列表裏存放的是元組類型,\ 元組第一個元素是鍵,第二個元素是值 li = [1,2,3,4,54] for i,k in enumerate(li): # enumerate 第二個參數默認不寫就是0 -- 枚舉 # print(i,k)
解構: a,b = b,a --- 交換的是指向 a,b = 1,2 a,b = (45,6) a,b = [1,4] a,b = {"s":1,"a":1} # 字典拆包後的結果是鍵賦值給了a和b的變量 enumerate() # 枚舉 給你要迭代對象,加一個序號 默認是從0開始,能夠本身指定 字典的嵌套: 查找的字典的嵌套時,按照鍵去一層一層的查找