日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】7000字,7幅图,这样就可以拿下Python字典?

發布時間:2025/3/12 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】7000字,7幅图,这样就可以拿下Python字典? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

公眾號:尤而小屋
作者:Peter
編輯:Peter

在之前介紹過python的3種數據類型:字符串、列表list、元組,它們都是有序的數據類型。

本文中介紹一種無序的Python數據類型:字典。字典主要是用來存放具有映射關系的數據。

文章目錄

字典特點

字典是python中經常使用的一種數據類型。字典是可以存儲任意數據類型的數據,并且存儲的數據也是可以修改的,這點和列表類似。字典的每個基本元包含兩個部分:鍵key和這個鍵對應的值value。

  • 鍵和值之間使用冒號隔開(涉及到的符號都是英文狀態下)

  • 每對元素用逗號隔開

  • 整個數據放在大括號中

通過一個例子來說明:{"name":"小明","age":22,"sex":"男"}

在字典中,鍵是不同重復的,且是不可變的數據類型,值可以是任意的數據類型。元組是不可變的,所以可作為字典的鍵。列表是可變的,不能作為字典的鍵。鍵只支持不可變的數據類型

字典是沒有順序的,所以每次打印出來的順序可能不同。

字典創建

字典的創建有兩種方法:

  • 使用花括號{}創建

  • 使用dict函數創建

在使用花括號{}來創建字典時,花括號中應包含多個 key-value 對,key 與 value 之間用英文冒號隔開;多個 key-value 對之間用英文逗號隔開。

創建空字典

dic1?=?dict()??#?空字典 dic1 {} type(dic1)??#?查看類型 dict dic2?=?{}???#?花括號來創建 dic2 {} type(dic2) dict

花括號:只有一個鍵值對

dic3?=?{"name":"小明"} dic3 {'name': '小明'} type(dic3) dict

花括號:多個鍵值對

鍵一定是字符串類型,值可以任意類型的數據,比如下面的:字符串、數值、列表等

dic4?=?{"name":"小明",??#?字符串"age":25,??#?數值89:111,"sex":"男",??#?字符串"score":[100,98,99]???#?列表} dic4 {'name': '小明', 'age': 25, 89: 111, 'sex': '男', 'score': [100, 98, 99]} type(dic4) dict

dict函數:多個鍵值對

#?列表中存放元組 data1?=?[("name","小明"),("age",25),("score",[100,99,98])]??dic5?=?dict(data1) dic5 {'name': '小明', 'age': 25, 'score': [100, 99, 98]} #?列表中嵌套列表data2?=?[["name","小明"],["age",25],["score",[100,99,98]]]??dic6?=?dict(data2) dic6 {'name': '小明', 'age': 25, 'score': [100, 99, 98]}

dict函數:通過指定關鍵字參數創建

還可通過為 dict 指定關鍵字參數創建字典,此時字典的 key 不允許使用表達式

dic7?=?dict(name="小明",age=25,sex="男")??#?name不要放在引號中 dic7 {'name': '小明', 'age': 25, 'sex': '男'} type(dic7) dict

dict函數:通過zip函數創建

data3?=?zip(("name","age","sex"),("小明",25,"男"))data3 <zip at 0x1122e2870> dict8?=?dict(data3) dict8 {'name': '小明', 'age': 25, 'sex': '男'}

字典操作

鍵是字典中關鍵的數據,所有的值都是通過自己的鍵來進行訪問的,所以我們必須掌握各個基于鍵key的操作。

  • 通過key訪問value

  • 通過key添加鍵值對

  • 通過key刪除鍵值對

  • 通過key修改鍵值對

  • 判斷指定的鍵值對是否存在

操作1:通過key訪問value

下面的代碼演示的是如何通過key來訪問對應的value

dic5 {'name': '小明', 'age': 25, 'score': [100, 99, 98]} dic5["name"] '小明' dic5["score"] [100, 99, 98]

如果鍵不存在,則會引起報錯:

dic5["sex"] ---------------------------------------------------------------------------KeyError Traceback (most recent call last)<ipython-input-18-8c2513616156> in <module> ----> 1 dic5["sex"]KeyError: 'sex'

操作2:添加鍵值對key-value

dic5??#?前 {'name': '小明', 'age': 25, 'score': [100, 99, 98]} dic5["address"]?=?"廣東省深圳市"??#?增加鍵值對 dic5??#?后 {'name': '小明', 'age': 25, 'score': [100, 99, 98], 'address': '廣東省深圳市'}

再添加一個新的鍵值對

dic5["birth"]?=?"1993-08-01"dic5 {'name': '小明','age': 25,'score': [100, 99, 98],'address': '廣東省深圳市','birth': '1993-08-01'}

操作3:刪除鍵值對

dic6 {'name': '小明', 'age': 25, 'score': [100, 99, 98]} #?1、刪除del?dic6["name"] dic6?? {'age': 25, 'score': [100, 99, 98]}

我們發現name這個鍵值對不見了,已經被刪除

del?dic6["score"]??? dic6 {'age': 25}

再次刪除后,score這個鍵值對也不見了

操作4:修改鍵值對

修改鍵值對,主要是對某個鍵中的值進行修改;新賦值的value會覆蓋掉原來的值。

dic5 {'name': '小明','age': 25,'score': [100, 99, 98],'address': '廣東省深圳市','birth': '1993-08-01'} #?1、修改name dic5["name"]?=?"小紅"??dic5 {'name': '小紅','age': 25,'score': [100, 99, 98],'address': '廣東省深圳市','birth': '1993-08-01'} dic5["name"]?+?"來自"?+?dic5["address"] '小紅來自廣東省深圳市' #?2、修改日期dic5["birth"]?=?"1993-08-08" dic5 {'name': '小紅','age': 25,'score': [100, 99, 98],'address': '廣東省深圳市','birth': '1993-08-08'}

操作5:判斷鍵值對是否存在

如果要判斷字典是否包含指定的 key,則可以使用 in 或 not in 運算符。需要指出的是,這兩個運算符都是基于字典的 key 來判斷的

dic5 {'name': '小紅','age': 25,'score': [100, 99, 98],'address': '廣東省深圳市','birth': '1993-08-08'} "sex"?in?dic5?? False "sex"?not?in?dic5??? True
  • 上面:性別sex并不在字典dic5中,結果為False:

  • 下面:姓名name在字典dic5中,結果為True。

"name"?in?dic5 True

字典操作小結

通過上面的例子,我們對比列表和字典的索引:

  • 鍵key是字典中的關鍵,相當于是字典的索引,但是這個索引不一定是整數型。

  • 字典的key值是任意的不可變數據類型:數值型、字符串、元組等

  • 列表中的索引總是從0開始、連續增加的;但如果字典中的key都是整數類型,也可以不從0開始,不連續

  • 列表中不允許對不存在的索引賦值;字典允許對不存在的key賦值,這樣就像是增加了一個鍵值對

字典方法

Python中的字典是由dict類代表,可以使用dir(dict)來查看該類包含哪些方法

查看字典方法

print(dir(dict))??#?查看字典對的方法 ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

字典方法1:clear()

用于清空字典中所有的 key-value 對,對一個字典執行 clear() 方法之后,該字典就會變成一個空字典。

dic7???#?執行前 {'name': '小明', 'age': 25, 'sex': '男'} dic7.clear()??#?執行 dic7??#?執行后變成空字典 {}

字典方法2:get()

方法就是通過key來獲取value。當我們使用方括號語法訪問并不存在的key時,字典會引發錯誤。但是如果使用get方法,則不會報錯,會返回None,看具體的例子:

dic5 {'name': '小紅','age': 25,'score': [100, 99, 98],'address': '廣東省深圳市','birth': '1993-08-08'} print(dic5.get("name"))??#?訪問存在的鍵 小紅 print(dic5.get("birth")) 1993-08-08

下面的sex鍵不存在,但是并沒有報錯,而是輸出None:

print(dic5.get("sex"))?? None

使用花括號則報錯:

dic5["sex"] ---------------------------------------------------------------------------KeyError Traceback (most recent call last)<ipython-input-43-8c2513616156> in <module> ----> 1 dic5["sex"]KeyError: 'sex'

字典方法3:update

  • 如果鍵存在,則用來更新字典中鍵值對的取值;

  • 如果鍵值對不存在,則會被添加到字典中去:

dic5 {'name': '小紅','age': 25,'score': [100, 99, 98],'address': '廣東省深圳市','birth': '1993-08-08'} dic5.update({"name":"小明"})??#?更新現有key dic5 {'name': '小明','age': 25,'score': [100, 99, 98],'address': '廣東省深圳市','birth': '1993-08-08'} dic5.update({"sex":"男"})???#??鍵不存在,就是更新 dic5 {'name': '小明','age': 25,'score': [100, 99, 98],'address': '廣東省深圳市','birth': '1993-08-08','sex': '男'}

字典方法4:pop()

用于獲取指定key對應的value,并刪除整個鍵值對key-value。

dic5 {'name': '小明','age': 25,'score': [100, 99, 98],'address': '廣東省深圳市','birth': '1993-08-08','sex': '男'} dic5.pop("sex") '男'

查看下面的字典,我們發現sex這個鍵值對已經被刪除了:

dic5 {'name': '小明','age': 25,'score': [100, 99, 98],'address': '廣東省深圳市','birth': '1993-08-08'}

字典方法5:popitem()

該方法是用于隨機彈出一個字典中的鍵值對。其實并不是隨機。

Python列表的pop方法總是彈出最后一個元素。字典的popitem()方法也是彈出最后一個key-value鍵值對

dic5 {'name': '小明','age': 25,'score': [100, 99, 98],'address': '廣東省深圳市','birth': '1993-08-08'} dic5.popitem()??#?最后一個 ('birth', '1993-08-08') dic4 {'name': '小明', 'age': 25, 89: 111, 'sex': '男', 'score': [100, 98, 99]} k,v?=?dic4.popitem()??#?通過序列解包分別賦值給兩個變量print(k) print(v) score [100, 98, 99]

字典方法6:setdefault()

setdefault() 方法也用于根據 key 來獲取對應 value 的值。

  • 如果要獲取的 key 在字典中不存在時,可以為這個key 設置一個默認的 value,然后再返回該 key 對應的 value。

  • 如果key存在字典中,直接返回key對應的值value

dic5 {'name': '小明', 'age': 25, 'score': [100, 99, 98], 'address': '廣東省深圳市'} dic5.setdefault("sex","男")???#?dic5中不存在sex的鍵 '男' dic5.setdefault("name","小紅")?#?name鍵存在,則返回字典中的值 '小明'

字典方法7:fromkeys()

該方法是使用給定的多個key創建字典,這些key對應的value默認都是None;也可以額外傳入一個參數作為默認的value

dic8?=?dict.fromkeys(["小紅","小明"])??#?列表形式 dic8 {'小紅': None, '小明': None}

上面的結果表示:方法默認的值都是None

dict.fromkeys(("小紅","小明"))???#??元組形式 {'小紅': None, '小明': None}

還可以傳入一個默認的值:

dict.fromkeys(["小明","小周"],22) {'小明': 22, '小周': 22}

字典3大法寶

字典法寶1:keys()

用來查看字典的全部鍵

dic5 {'name': '小明','age': 25,'score': [100, 99, 98],'address': '廣東省深圳市','sex': '男'} dic5.keys() dict_keys(['name', 'age', 'score', 'address', 'sex']) for?key?in?dic5.keys():??#?循環遍歷每個keyprint(key) name age score address sex

通過下面的代碼,可以發現:當我們遍歷字典的時候,默認是取字典的鍵:

for?i?in?dic5:print(i) name age score address sex

字典法寶2:values()

用來返回字典中的所有值

dic5.values() dict_values(['小明', 25, [100, 99, 98], '廣東省深圳市', '男']) list(dic5.values()) ['小明', 25, [100, 99, 98], '廣東省深圳市', '男']

字典法寶3:items()

用來返回全部的鍵值對

dic5.items() dict_items([('name', '小明'), ('age', 25), ('score', [100, 99, 98]), ('address', '廣東省深圳市'), ('sex', '男')]) for?item?in?dic5.items():print(item) ('name', '小明') ('age', 25) ('score', [100, 99, 98]) ('address', '廣東省深圳市') ('sex', '男')

既然通過items()能夠直接輸出鍵值對,我們可以直接獲取鍵、值

for?k,v?in?dic5.items():print(k,v) name 小明 age 25 score [100, 99, 98] address 廣東省深圳市 sex 男
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯黃海廣老師《機器學習課程》課件合集 本站qq群851320808,加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【Python】7000字,7幅图,这样就可以拿下Python字典?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。