python字典操作全家桶,超全!!,字典相關操作都來這兒找

python中字典相關操作,在實際開發中是必不可少的部分,除了它本身可以構造、儲存資料外,它的結構和json類似,還可以互轉。

在web開發、資料庫查詢結果集等都是以json或者字典形式存在,因此掌握字典相關操作是一個開發人員必備技能,

下面的總結,按需獲取,複製執行即可得出相應結果

1、建立字典(create)

====================基礎建立=====================dict_ = {} # 直接建立空的字典——->最常用dict_default = {“key1”:“value1”,‘key2’:‘value2’} # 賦值建立帶預設值的字典——->建立默值字典最常用dict_key = dict(key1=“value1”,key2=“value2”) # 透過關鍵字dict建立——->使用較少dict_fromkeys = dict。fromkeys([“key1”,“key2”,“key3”],“6666”) # fromkeys建立 使用較少====================中高階建立======================list_ = [(“key1”,“value1”),(“key2”,“value2”)] dict_list = dict(list_) # 列表巢狀二次元祖以及dict關鍵字建立,——->中等dict_advance = { str(i):“value%s”%i for i in range(5) } # 字典解析建立字典——->常用====================實際開發中常用構造================list1,list2 = [“age”,“address”,“name”],[18,“重慶”,“張三”]dict_advance2 = { key:value for key,value in zip(list1,list2) } # 字典解析建立字典(中高階用法)——-> 常用dict_zip = dict(zip(list1,list2)) # 最常用,程式碼短又簡單,zip中防止可迭代物件即可,列表、元祖,字串均可執行上面程式碼後輸出:{}{‘key1’: ‘value1’, ‘key2’: ‘value2’}{‘key1’: ‘value1’, ‘key2’: ‘value2’}{‘key1’: ‘6666’, ‘key2’: ‘6666’, ‘key3’: ‘6666’}{‘key1’: ‘value1’, ‘key2’: ‘value2’}{‘0’: ‘value0’, ‘1’: ‘value1’, ‘2’: ‘value2’, ‘3’: ‘value3’, ‘4’: ‘value4’}{‘age’: 18, ‘address’: ‘重慶’, ‘name’: ‘張三’}{‘age’: 18, ‘address’: ‘重慶’, ‘name’: ‘張三’}

2、字典新增元素(add)

dict_[“age”] = 18 # dict[key] = value 方式新增——->最常用value= {“name”:“張三”} # dict中update 方式新增——->常用dict_。update(value)

3、字典刪除元素(del)

dict_ = {‘age’: 18, ‘address’: ‘重慶’, ‘name’: ‘張三’} =======================根據key 刪除元素=================del dict_[“age”] # 普通刪除——->基本不用dict_。pop(“address”) #升級版刪除——->最常用dict_ = { key:value for key,value in dict_。items() if key != “name” } # 字典解析刪除——-> 一般不使用,面試或裝逼用執行上面三句後輸出:{} =======================根據value 刪除元素=================dict_ = { key:value for key,value in dict_。items() if value != 18 } # 透過字典解析刪除,——->最常用,一般封裝成方法使用輸出:{ ‘address’: ‘重慶’, ‘name’: ‘張三’} =======================刪除、清空字典=================dict_ = {‘age’: 18, ‘address’: ‘重慶’, ‘name’: ‘張三’}del dict_ # 將字典從記憶體中刪除,後面引用報錯 ——->不常用dict_。clear() # 清空字典中的所有key=value ——->不常用

3、字典修改元素(modify)

dict_ = {‘age’: 18, ‘address’: ‘重慶’, ‘name’: ‘張三’}=======================修改字典值=================dict_[“age”] = 19 ——->最常用輸出:{‘age’: 19, ‘address’: ‘重慶’, ‘name’: ‘張三’}=======================修改字典key================dict_。update({“newkey”:dict_。pop(“age”)}) #封裝成方法配合使用 ——->常用輸出:{‘address’: ‘重慶’, ‘name’: ‘張三’, ‘newkey’: 18}

4、字典相關元素獲取(Find)

dict_ = {‘age’: 18, ‘address’: ‘重慶’, ‘name’: ‘張三’}=======================獲取字典中所有key================keys = list(dict_。keys()) #返回值是列表 ——->常用print(keys)輸出:[‘age’, ‘address’, ‘name’]=======================獲取字典中所有value================keys = list(dict_。values()) #返回值是列表 ——->常用print(keys)輸出:[18, ‘重慶’, ‘張三’]=======================獲取字典中所有key,value================keys = list(dict_。items()) ——->最常用print(keys)輸出:[(‘age’, 18), (‘address’, ‘重慶’), (‘name’, ‘張三’)]======================根據key獲取value===================value1 = dict_[“age”] # key 不存在是會報錯 ——->常用value2 = dict_。get(“age”,None) # key 不存在時不會報錯,並且可設定預設值,開發中最常用 ——->常用value3 = dict_。get(“fff”,None) # 演示key不存在這種預設值 ——->最常用,也是建議使用value4 = “”。join([ str(dict_[key]) for key in dict_。keys() if key==“age” ]) # 裝逼寫法,基礎差的絕對看不懂print(value1,value2,value3,value4)輸出:18 18 None 18========================根據value獲取key===================key1 = {value:key for key,value in dict_。items() }。get(“重慶”) # 採用字典解析,key,value互換生成新的字典在獲取值,一般封裝成方法使用key2 = [ key for key,value in dict_。items() if value==“重慶” ][0] # 採用列表解析獲取key,一般封裝成方法使用key3 = “”。join([ key[0] for key in dict_。items() if key[1] == “重慶” ]) # 採用列表解析獲取key,一般封裝成方法使用print(key1,key2,key3)輸出:address address address

5、字典排序(order)

======================根據key排序=================== dict_ = {‘15’: 18, ‘12’: ‘重慶’, ‘11’: ‘張三’}new_dict1 = dict(sorted(dict_。items())) #透過dict_。items()解析成元祖,在給元祖排序,在轉換成字典new_dict2 = {key:dict_[key]for key in sorted(dict_。keys())} #透過dict_。keys()獲取所以key,在key祖排序,字典解析生成字典print(new_dict1)print(new_dict2)輸出{‘11’: ‘張三’, ‘12’: ‘重慶’, ‘15’: 18}{‘11’: ‘張三’, ‘12’: ‘重慶’, ‘15’: 18}======================根據value排序=================== d = {‘語文’: 18, ‘數學’: 88, ‘英語’: 66,‘物理’: 22}①new_order1 ={ va_ke[1]:va_ke[0] for va_ke in sorted( [(va,ke) for ke,va in sorted(d。items())])}②new_order2 ={ va_ke[1]:va_ke[0] for va_ke in sorted(zip(d。values(),d。keys()))}③new_order3 ={ key:va for key,va in sorted(d。items(),key=lambda items:items[1])}print(new_order1)print(new_order2)print(new_order3)輸出:{‘語文’: 18, ‘物理’: 22, ‘英語’: 66, ‘數學’: 88}{‘語文’: 18, ‘物理’: 22, ‘英語’: 66, ‘數學’: 88}{‘語文’: 18, ‘物理’: 22, ‘英語’: 66, ‘數學’: 88}解釋:①透過列表解析 [(va,ke) for ke,va in sorted(d。items())] 生成元祖(value,key)元祖,在給元祖排序,在用字典解析生成字典②先透過(d。values(),d。keys())組裝(value,key),在吧元祖壓縮成一個列表,給列表排序,在用字典解析生成字典③利用sorted可以指定排序關鍵字的原理,指定以value進行排序,先透過d。items()獲取key,value的迭代物件,然後透過key,指定排序關鍵字為value,sorted中指定排序關鍵字需要繫結函式,因此用lambda獲取value

好了,相信你看了上面內容,慢慢練習,python的字典操作對你來說 so easy!,對了基本有關python字典相關的面試題你都能答出。

點贊收藏,忘記了就翻出來瞧瞧,慢慢的 它就是你的咯!

有看不懂的地方,,歡迎留言諮詢,有問必答,相互學習,合作共贏~~~