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

歡迎訪問 生活随笔!

生活随笔

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

python

Python 内置容器 之 字典 ( dict )超详细指南

發(fā)布時間:2023/12/18 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 内置容器 之 字典 ( dict )超详细指南 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

python 的內(nèi)置容器? :? ? 有四個?

? ? ? ? ? ? ? ?? ? ?

?????????????????????list?(列表)? ?? ? ?set?(集合)??? ? ??tuple? ?(元祖)?? ? ? ?dict??(字典)

Dict?字典?? ( )

? ? ? ? ?#? ?他本質(zhì)其實也是一種 哈希表 (包裝的? 鍵值對!!)

? ? ? ? ?#? ? 一個鍵 對應著一個 值 , 鍵與鍵 是不能沖突的(就是不能有兩個一模一樣的鍵)

? ? ? ? ? ? ? ?值 是可以重復的。

? ? ? ? ?#? ?在 Python 中, 鍵( Key ) 的數(shù)據(jù)類型 一般就是 數(shù)字 字符串 和元祖 ,大多數(shù)情況下

? ? ? ? ? ? ? 鍵的數(shù)據(jù)類型 為 字符串 !!? 鍵必須是不可變的!!

? ? ? ? ? ? ? ?值 可以是任意 數(shù)據(jù)類型!!

? 創(chuàng)建? :??

? ? ? ? ? ?#?? ?我們在前面 學習 集合的時候,就說過,集合 和 字典 都是 以 { } 的形式呈現(xiàn)的!!

? ? ? ? ? ??

? ? ? ? ? ? 示例? :? ?

d = { } >>> type(d) <class 'dict'>z = { "name" : "太極", 5:"是整數(shù)",(0.3,0.2,0.1):"是小數(shù)"} >>> type(z) <class 'dict'>

? ? ? ? ? ? ? 上示就是證明 :? 字典中? 鍵? 的數(shù)據(jù)類型 !!??

? ? ? ? ? ? #?? ? ? zip 方式 創(chuàng)建字典? ? dict(zip( ))

u2 = dict(zip('abc',[1,2,3])) >>> u2 {'a': 1, 'b': 2, 'c': 3}

? ? ? ? ? ? ? ? ? 注意上示中? ? 'abc'? ?: 是 a , b,? c? 各自成為一個? 鍵??

name = ['李晨', '劉勇', '趙雪', "王峰"] grade = ['89', '92', '76', '65'] dict_1 = dict(zip(name, grade)){'李晨': '89', '劉勇': '92', '趙雪': '76', '王峰': '65'}

? ? ? ? ? ??

? 訪問? :

? ? ? ? ? ? ? ? #? ?字典的訪問 是通過? ?鍵 來訪問? 的 !

? ? ? ? ? ? ? ? 示例? :? ?第一種 訪問 方式??

z["name"] '太極' >>> z[5] '是整數(shù)' >>> z[(0.3,0.2,0.1)] '是小數(shù)'

? ? ? ? ? ? ? ? 示例? :? ? 通過? ?get? ?訪問??

z.get("name") '太極'z.get(5) '是整數(shù)'

? ? ? ? ? ? ? ?get? 的第二種 訪問 方式 :

z {'name': '太極', 5: '是整數(shù)', (0.3, 0.2, 0.1): '是小數(shù)'}z.get("法外狂徒","張三") '張三'z {'name': '太極', 5: '是整數(shù)', (0.3, 0.2, 0.1): '是小數(shù)'}

? ? ? ? ? ? ?? :? get 的第二種訪問方式 不經(jīng)常用,但是也要知道這種用法?

? ? ? ? ? ? ? ? ? ? #???可以看到 第二行的 get 新用法 , 在第一行代碼 我們已經(jīng)說明了 字典 z 里的具體

? ? ? ? ? ? ? ? ? ? ? ? ? 內(nèi)容,然后,我們執(zhí)行 第二行代碼, 可以發(fā)現(xiàn) z 字典里 就沒有 “ 法外狂徒 ” 和?

? ? ? ? ? ? ? ? ? ? ? ? ? “張三”? 的內(nèi)容呀 !!!

? ? ? ? ? ? ? ? ? ? ? ? ? 而 我們執(zhí)行完 第二行代碼 給我們 返回來一個 “ 張三 ”

? ? ? ? ? ? ? ? ? ? ? ? ? 所以, get 的第二種用法就是 當 字典中 沒有 要訪問的 鍵 的時候("法外狂徒") 會

??????????????????????????默認將 ( " 法外狂徒 ", " 張三 ") 作為一對 鍵值對 進行訪問 !!

? ? ? ? ? ? ? ? ? ? ? ? ? 就相當于是? 鍵 : 法外狂徒? ? 值 : 張三? ?

? ? ? ? ? ? ? ? ? ? ? ? ? 但是在執(zhí)行完 第二行代碼后 再 看 字典 z? 的內(nèi)容 還是原來的樣子 ,就說明? :

? ? ? ? ? ? ? ? ? ? ? ? ? get? 的第二種? 用法 不會 改變 字典 的內(nèi)容!!!?

? ? ? ? ? ? ? ? ? ? #? ? 倘若,法外狂徒 后面 沒有張三 ,即 字典中 就沒有這個 鍵 ,直接 返回 None !?

?增刪改? :?

? ? ? ? ? ? ? ? ? ? #? 我們知道? 不能對 鍵 做改動,可以對 值 做改動?

? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? :?

z["gender"]="男" >>> z {'name': '太極', 5: '是整數(shù)', (0.3, 0.2, 0.1): '是小數(shù)', 'gender': '男'}

? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? 刪? :?

del z['name'] >>> z {5: '是整數(shù)', (0.3, 0.2, 0.1): '是小數(shù)', 'gender': '男'}

? ? ? ? ? ? ? ? ? ? 我們使用的是? del??

? ? ? ? ? ? ? ? ? ? ? :??

? ? ? ? ? ? ? ? ? ? ? ? ? ? 由于 我們字典中? 鍵 是不能變的,所以 只能對 值 做以 改變?

z['gender']='女' >>> z {5: '是整數(shù)', (0.3, 0.2, 0.1): '是小數(shù)', 'gender': '女'}

????常見方法? :?

????????????????????????? 'clear',? ? ? ?'copy',? ? ? ? ? ? ? 'fromkeys',? ? ? ? ? ?'get',? ? ? ?

??????????????????????????'pop',? ? ? ?'popitem',? ? ? ? ? 'setdefault',? ? ? ?'update',? ?

???????????????????????? 'items',? ? ? ? ? 'keys',? ? ? ? ? ? ? 'values'

? ? ? ? ? ? ? ? ? ? ? ? ??keys?

u1 {'球隊名': '邁阿密', '球員名': 'james', '球衣號碼': 6} >>> u1.keys() dict_keys(['球隊名', '球員名', '球衣號碼'])

? ? ? ? ? ? ? ? ? ? ? ? #? 以列表的形式返回字典中所有的? “

? ? ? ? ? ? ? ? ? ? ? ? values

u1 {'球隊名': '熱火隊', '球員名': 'james', '號碼': 6} >>> u1.values() dict_values(['熱火隊', 'james', 6])

? ? ? ? ? ? ? ? ? ? ? ? ?#? ?以列表的形式返回字典中所有的? ?“ ”?

? ? ? ? ? ? ? ? ? ? ? ?items

u1.items() dict_items([('球隊名', '熱火隊'), ('球員名', 'james'), ('號碼', 6)])

? ? ? ? ? ? ? ? ? ? ? ? #? ?返回一個列表,列表中以元組的形式把字典中的每一對鍵值對取出?

? ? ? ? ? ? ? ? ? ? ? ? get

u1.get('球員名') 'james'

? ? ? ? ? ? ? ? ? ? ? ? #? ?通過 獲取 ?

? ? ? ? ? ? ? ? ? ? ?? pop

u1.pop('球隊名') '熱火隊' >>> u1 {'球員名': 'james', '號碼': 6}

? ? ? ? ? ? ? ? ? ? ? ?#? ?通過 刪除 鍵值對??

? ? ? ? ? ? ? ? ? ? ? ? popitem?

u1['年齡'] = 23 >>> u1 {'球員名': 'james', '號碼': 6, '年齡': 23} >>> u1.popitem() ('年齡', 23) >>> u1 {'球員名': 'james', '號碼': 6} >>> u1.popitem() ('號碼', 6) >>> u1.popitem() ('球員名', 'james') >>> u1 {}

? ? ? ? ? ? ? ? ? ?#? ?不帶參數(shù),是用來刪除鍵值對,先刪最后創(chuàng)建的鍵值對!!

字典的遍歷? :??

? ? ? ? NO : 1? ?? ?? ?for? key? in? 字典對象?

for key in u1 : ... print(key) ... 球隊名 球員名 號碼for key in u1 : ... print(key,u1[key]) ... 球隊名 熱火隊 球員名 james 號碼 6

? ? ? ? ?#? 上部分是? 返回鍵? ? ? ? ? ? 下部分 : 直接返回? ?鍵值對? ? ? ??

????????

? ? ? ? NO :2? ? ? ? for? ? (key,value)? ? in? ?字典對象.items()

for(key,values) in u1.items(): ... print(key,values) ... 球隊名 熱火隊 球員名 james 號碼 6

? ? ? ? ?NO : 3? ? ? ? for? item? ?in? ?字典對象.items()

for items in u1.items(): ... print(items) ... ('球隊名', '熱火隊') ('球員名', 'james') ('號碼', 6)

至此,我們? Python? ?中四個 內(nèi)置容器已經(jīng)全部介紹完了!!

注意? : 當不可變的數(shù)據(jù)類型,如果包含了可變對象,那么可變對象這部分是可以變化的!!

? ? ? ? ? ? ??

? ? ? ? ? ? ? #? ?我們學習了 四大容器? 列表? 字典 元組? 集合 ,其中,有的數(shù)據(jù)類型是可變的,有的是

? ? ? ? ? ? ? ? ? ?不可變的,我們在實踐過程中也要注意 綜合來使用會更加靈活!

? ? ? ? ? ? ? ?示例? :? ?

t = (1,2,3,4,5) >>> t[0]=5 Traceback (most recent call last):File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment

? ? ? ? ? ? ? 我們知道 元組類型是不可變的,是不能夠修改里面的值的,如上示!!!

? ? ? ? ? ? ? 倘若 元組 如下所示時 :

t = (1,2,3,4,5,[1,2,355,88]) >>> t (1, 2, 3, 4, 5, [1, 2, 355, 88])

? ? ? ? ? ? ? ?可以看到,元組 t 里面又包含了一個列表 ,這就是所謂的 不可變數(shù)據(jù)類型包含了可變數(shù)

???????????????據(jù)對象,因為,列表是可變的!!

? ? ? ? ? ? ? ?這時,就可以對 其進行修改,但是,注意是只能修改可變對象的那一部分!!

t (1, 2, 3, 4, 5, [1, 2, 355, 88]) >>> t[5][1]=5t (1, 2, 3, 4, 5, [1, 5, 355, 88])

? ? ? ? ? ? ? ?可以看到。此時 元組 t 的第5個元素也即 列表發(fā)生了變化,列表的第2個元素 2 變?yōu)?5!

總結(jié)

以上是生活随笔為你收集整理的Python 内置容器 之 字典 ( dict )超详细指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。