国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

Python 編程B15:組合數(shù)據(jù)類(lèi)型(三)

0
分享至

9.5 字典類(lèi)型

(dict)是 Python 中最重要的數(shù)據(jù)結(jié)構(gòu)之一,用于存儲(chǔ)“鍵—值”(key–value)對(duì)應(yīng)關(guān)系。它是一種可變的映射類(lèi)型,鍵必須唯一且可哈希;從 Python 3.7 起(語(yǔ)言規(guī)范保證),字典保留插入順序,這使得許多操作更加可預(yù)測(cè)。字典可高效實(shí)現(xiàn)查找、計(jì)數(shù)、配置管理等任務(wù)。

與列表不同,字典通過(guò)鍵(key)而不是索引來(lái)訪問(wèn)數(shù)據(jù)。

9.5.1 字典的創(chuàng)建

字典可通過(guò)花括號(hào) {} 、構(gòu)造函數(shù) 、以及等多種方法創(chuàng)建。

empty = {}

? 鍵(key)必須是可哈希(hashable)的對(duì)象,通常是不可變類(lèi)型(如字符串、數(shù)值、元組等)。注意:元組只有當(dāng)其所有元素也都是可哈希時(shí)才可作為鍵。frozenset 也是可哈希的集合類(lèi)型,可作為鍵。

? 值(value)可以是任意類(lèi)型,甚至包含列表、字典或函數(shù)等可變對(duì)象。

9.5.2 字典的常用操作與方法

字典可實(shí)現(xiàn)鍵值訪問(wèn)、更新、刪除、遍歷與合并等多種,還提供豐富的用于高效管理數(shù)據(jù)。

(1)訪問(wèn)與修改

使用鍵名訪問(wèn)對(duì)應(yīng)的值,若鍵不存在,.get() 可避免拋出 KeyError。

print(student)  # {'name': '小艾', 'score': 98, 'class': 'A1'}

(2)刪除操作

Python 提供多種方式刪除字典元素(需注意這些方法的返回值與副作用)。

print(data)  # {}

說(shuō)明:.pop() 可指定默認(rèn)值避免 KeyError,如 data.pop("x", None)。

(3)成員判斷與長(zhǎng)度

print(len(person))        # 字典包含的鍵值對(duì)數(shù)量

(4)遍歷

通過(guò) .keys()、.values()、.items() 可分別遍歷鍵、值或鍵值對(duì)。

    print(f"{k} -> {v}")

說(shuō)明:.items() 返回的元素是 (鍵, 值) 形式的元組,可在循環(huán)中直接拆包。

(5)合并與更新

使用 .update() 原地合并兩個(gè)字典。從 Python 3.9 起,也可用 | 運(yùn)算符返回新字典。若鍵沖突,后者會(huì)覆蓋前者的值。

print(merged)    # {'lr': 0.001, 'batch': 64, 'epochs': 10, 'device': 'cuda'}

(6)安全插入:setdefault()

當(dāng)鍵不存在時(shí) .setdefault() 方法自動(dòng)添加默認(rèn)值,并返回該鍵對(duì)應(yīng)的值(存在則直接返回現(xiàn)有值)。適合在分組統(tǒng)計(jì)中使用。

print(scores)    # {'小艾': [95, 88], '小包': [90]}

說(shuō)明:相比手動(dòng)判斷是否存在鍵,.setdefault() 更簡(jiǎn)潔高效。但當(dāng)默認(rèn)值是可變對(duì)象時(shí)要注意共享引用問(wèn)題。

(7)拷貝

字典的賦值只是復(fù)制引用,若要復(fù)制內(nèi)容,可使用淺拷貝或深拷貝。

print("原字典未變:", a)   # {'x': 1, 'y': [2, 3, 4]}

說(shuō)明:淺拷貝只復(fù)制外層對(duì)象,深拷貝會(huì)遞歸復(fù)制所有內(nèi)部元素。

當(dāng)字典中包含可變對(duì)象(如列表或嵌套字典)時(shí),應(yīng)使用 deepcopy() 以避免相互影響。

(8)排序與解包

字典本身不可直接“按序”重排,但可通過(guò) 等函數(shù)獲取排序后的視圖。

print(extended)  # {'a': 1, 'b': 2}

說(shuō)明:sorted() 對(duì)字典的默認(rèn)行為是對(duì)鍵排序;若按值排序可用 sorted(d.items(), key=lambda x: x[1])。

解包 {**a, **b} 常用于合并配置或參數(shù)表,后者會(huì)覆蓋前者同名鍵。

(9)統(tǒng)計(jì)與計(jì)數(shù)

結(jié)合 .get() 方法可以手動(dòng)高效統(tǒng)計(jì)頻次。

# {'AI': 3, 'Python': 1, 'Code': 1}

說(shuō)明:在生產(chǎn)環(huán)境中也可考慮使用 .Counter。

9.5.3 字典綜合示例與應(yīng)用

例 9.5.1:通訊錄管理器

字典非常適合存儲(chǔ)“鍵值一一對(duì)應(yīng)”的信息,如姓名與電話號(hào)碼的映射。

print("更新后的通訊錄:", contacts)

說(shuō)明:字典在查找操作上具有極高效率,非常適合構(gòu)建通訊錄、配置表、索引映射等結(jié)構(gòu)。

例 9.5.2:商品庫(kù)存統(tǒng)計(jì)系統(tǒng)

通過(guò)字典可輕松管理商品與庫(kù)存數(shù)量的映射關(guān)系,并支持動(dòng)態(tài)更新與匯總。

    print(f"{item}:{count} 個(gè)")

說(shuō)明:該示例展示了字典在動(dòng)態(tài)數(shù)據(jù)管理中的典型應(yīng)用,如庫(kù)存管理、銷(xiāo)售記錄或資源計(jì)數(shù)。在實(shí)際開(kāi)發(fā)中,這類(lèi)字典常與文件或數(shù)據(jù)庫(kù)交互,用于實(shí)時(shí)同步業(yè)務(wù)數(shù)據(jù)。

9.6 組合數(shù)據(jù)的嵌套與綜合應(yīng)用

嵌套與組合是數(shù)據(jù)結(jié)構(gòu)的高階應(yīng)用。通過(guò)合理使用列表、元組、集合與字典,可以構(gòu)建復(fù)雜的數(shù)據(jù)模型,并結(jié)合函數(shù)或類(lèi)實(shí)現(xiàn)更高層次的抽象能力。

例 9.6.1:學(xué)生成績(jī)管理系統(tǒng)

一個(gè)學(xué)生可以有多門(mén)課程成績(jī),可用字典與列表嵌套表示。

    print(f"{name} 的平均成績(jī):{average(scores):.1f}")

輸出:

鞠子舟 的平均成績(jī):92.7

此示例結(jié)合了字典(鍵值映射)、列表(序列存儲(chǔ))與函數(shù)調(diào)用(結(jié)構(gòu)化計(jì)算),展示了嵌套數(shù)據(jù)在實(shí)際數(shù)據(jù)管理中的常見(jiàn)用法。

例 9.6.2:AI 模型參數(shù)配置表

在人工智能開(kāi)發(fā)中,模型配置文件通常以嵌套字典形式存儲(chǔ),便于統(tǒng)一管理不同模塊參數(shù)。

print("訓(xùn)練輪次:", config["training"]["epochs"])  

輸出:

訓(xùn)練輪次: 10

嵌套字典是一種常見(jiàn)的數(shù)據(jù)描述結(jié)構(gòu),可輕松轉(zhuǎn)換為 文件,用于深度學(xué)習(xí)模型配置、超參數(shù)管理或日志記錄。

例 9.6.3:模型訓(xùn)練日志分析器

在機(jī)器學(xué)習(xí)實(shí)驗(yàn)中,我們常使用字典與列表來(lái)記錄訓(xùn)練過(guò)程中的多組指標(biāo)(如損失 loss、準(zhǔn)確率 accuracy)。

通過(guò)組合數(shù)據(jù)結(jié)構(gòu),可以輕松統(tǒng)計(jì)與可視化模型性能趨勢(shì)。

analyze_logs(logs)

輸出:

最高準(zhǔn)確率:86.00%

說(shuō)明:此示例結(jié)合了列表(順序存儲(chǔ)多輪訓(xùn)練記錄) 與 字典(保存每輪的指標(biāo)),展示了如何組織結(jié)構(gòu)化數(shù)據(jù)以便分析。

在實(shí)際 AI 項(xiàng)目中,可擴(kuò)展為讀取 JSON 訓(xùn)練日志、繪制學(xué)習(xí)曲線或自動(dòng)記錄實(shí)驗(yàn)結(jié)果。

小結(jié)

本次課系統(tǒng)學(xué)習(xí)了 Python 的字典(dict)類(lèi)型,掌握了字典的創(chuàng)建方法、訪問(wèn)與修改技巧、常用方法,并通過(guò)綜合示例了解了字典在通訊錄管理、庫(kù)存系統(tǒng)、模型配置與日志分析等應(yīng)用場(chǎng)景中的強(qiáng)大作用。

在下一課中,我們將學(xué)習(xí)文件操作(File I/O),了解如何將這些內(nèi)存中的數(shù)據(jù)包括列表、字典等保存到外部文件(如 .txt、.csv、.json),從而實(shí)現(xiàn)數(shù)據(jù)的持久化存儲(chǔ)與跨程序共享。


點(diǎn)贊有美意,贊賞是鼓勵(lì)

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
NBA西部:湖人火箭連續(xù)下滑,黑馬逆襲,2-7競(jìng)爭(zhēng)激烈,勇士又松了

NBA西部:湖人火箭連續(xù)下滑,黑馬逆襲,2-7競(jìng)爭(zhēng)激烈,勇士又松了

摸神drose
2026-01-12 15:03:57
“龍利魚(yú)”鮮嫩無(wú)刺,老少皆宜,海鮮店老板:我絕不給家里人吃

“龍利魚(yú)”鮮嫩無(wú)刺,老少皆宜,海鮮店老板:我絕不給家里人吃

簡(jiǎn)食記工作號(hào)
2026-01-09 00:14:00
郵報(bào):塔帥是阿森納掌舵人,各部門(mén)向他匯報(bào)、他對(duì)引援給建議

郵報(bào):塔帥是阿森納掌舵人,各部門(mén)向他匯報(bào)、他對(duì)引援給建議

懂球帝
2026-01-12 15:28:23
沒(méi)想到竟然這么多工作需要保密的!網(wǎng)友:不讓看非看被一槍斃了

沒(méi)想到竟然這么多工作需要保密的!網(wǎng)友:不讓看非看被一槍斃了

另子維愛(ài)讀史
2025-12-08 20:58:22
特斯拉中國(guó)又推出新優(yōu)惠方案,這也太夸張了!

特斯拉中國(guó)又推出新優(yōu)惠方案,這也太夸張了!

XCiOS俱樂(lè)部
2026-01-11 11:19:46
王毅外長(zhǎng)推遲訪問(wèn)索馬里,35年來(lái)屬首次,駁斥索馬里蘭不實(shí)之詞

王毅外長(zhǎng)推遲訪問(wèn)索馬里,35年來(lái)屬首次,駁斥索馬里蘭不實(shí)之詞

麓谷隱士
2026-01-12 09:22:40
包養(yǎng)情人無(wú)數(shù),玩老婆閨蜜,娶初中同學(xué)女兒為妻,孫道存有多荒唐

包養(yǎng)情人無(wú)數(shù),玩老婆閨蜜,娶初中同學(xué)女兒為妻,孫道存有多荒唐

瓜汁橘長(zhǎng)Dr
2026-01-06 10:11:41
中國(guó)股市:如果接下來(lái)迎來(lái)牛市,就買(mǎi)這種股票,幾乎吃掉所有利潤(rùn)

中國(guó)股市:如果接下來(lái)迎來(lái)牛市,就買(mǎi)這種股票,幾乎吃掉所有利潤(rùn)

股經(jīng)縱橫談
2026-01-12 16:17:21
36歲便慷慨就義的瞿秋白,建國(guó)后毛主席為何會(huì)有 “以后少紀(jì)念他” 這樣的評(píng)價(jià)?

36歲便慷慨就義的瞿秋白,建國(guó)后毛主席為何會(huì)有 “以后少紀(jì)念他” 這樣的評(píng)價(jià)?

桃煙讀史
2025-12-31 21:38:26
官媒怒批后,一天時(shí)間,閆學(xué)晶再迎2大噩耗,這次,她真的要哭了

官媒怒批后,一天時(shí)間,閆學(xué)晶再迎2大噩耗,這次,她真的要哭了

叨嘮
2026-01-10 21:54:58
3個(gè)生肖恭喜了,1、2、3月開(kāi)啟財(cái)富快車(chē)道,收入直接翻倍!

3個(gè)生肖恭喜了,1、2、3月開(kāi)啟財(cái)富快車(chē)道,收入直接翻倍!

毅談生肖
2026-01-12 11:13:14
羅馬諾:卡里克很可能得到曼聯(lián)主帥職位,弗萊徹已出局

羅馬諾:卡里克很可能得到曼聯(lián)主帥職位,弗萊徹已出局

懂球帝
2026-01-12 12:50:10
中央已明確落實(shí):“兩延一彈一自愿”,2026年退休如何選擇更劃算

中央已明確落實(shí):“兩延一彈一自愿”,2026年退休如何選擇更劃算

夜深?lèi)?ài)雜談
2026-01-11 19:29:48
美國(guó)洛杉磯一卡車(chē)沖入集會(huì)人群

美國(guó)洛杉磯一卡車(chē)沖入集會(huì)人群

大象新聞
2026-01-12 08:53:21
馬斯克173分鐘訪談:當(dāng)智力成本歸零,普通人唯一的護(hù)城河在哪?

馬斯克173分鐘訪談:當(dāng)智力成本歸零,普通人唯一的護(hù)城河在哪?

小8說(shuō)科技
2026-01-12 15:05:57
期待!恒大傳奇球星:有中超球隊(duì)請(qǐng)我加盟,正在考慮是否回中國(guó)

期待!恒大傳奇球星:有中超球隊(duì)請(qǐng)我加盟,正在考慮是否回中國(guó)

國(guó)足風(fēng)云
2026-01-12 15:34:52
73.6個(gè)億現(xiàn)金,直接打到了華為和中興的賬上,這絕對(duì)是下了血本了

73.6個(gè)億現(xiàn)金,直接打到了華為和中興的賬上,這絕對(duì)是下了血本了

貍花小咪
2025-11-27 19:04:03
49歲“李小冉”也太凡爾賽了吧!穿羽絨服配牛仔褲,漫畫(huà)腿太搶鏡

49歲“李小冉”也太凡爾賽了吧!穿羽絨服配牛仔褲,漫畫(huà)腿太搶鏡

蓓小西
2026-01-12 09:21:07
錢(qián)再多有什么用?66歲身價(jià)過(guò)億的倪萍,今26歲兒子卻成她的"心病"

錢(qián)再多有什么用?66歲身價(jià)過(guò)億的倪萍,今26歲兒子卻成她的"心病"

涵豆說(shuō)娛
2026-01-03 12:07:08
“三口人一起,還沒(méi)鞋碼大!”90后女子喜當(dāng)奶,兒媳被疑未成年!

“三口人一起,還沒(méi)鞋碼大!”90后女子喜當(dāng)奶,兒媳被疑未成年!

牛牛叨史
2026-01-12 16:32:35
2026-01-12 17:20:49
MediaTea
MediaTea
專業(yè)的數(shù)字媒體、新媒體技術(shù)
1701文章數(shù) 72關(guān)注度
往期回顧 全部

科技要聞

小米二手車(chē)價(jià)大跳水:SU7半年跌5萬(wàn)元

頭條要聞

深圳"望郎歸"一徒步男子倒地猝死:突然倒地頭砸石頭上

頭條要聞

深圳"望郎歸"一徒步男子倒地猝死:突然倒地頭砸石頭上

體育要聞

聰明的球員,不是教練教出來(lái)的

娛樂(lè)要聞

閆學(xué)晶:脫離群眾太久 忘了自己的根

財(cái)經(jīng)要聞

A股大漲 兩市成交額3.6萬(wàn)億創(chuàng)歷史新高

汽車(chē)要聞

增配不加價(jià) 北京現(xiàn)代 第五代 勝達(dá)2026款上市

態(tài)度原創(chuàng)

手機(jī)
旅游
房產(chǎn)
健康
軍事航空

手機(jī)要聞

榮耀Magic 8 RSR保時(shí)捷設(shè)計(jì)開(kāi)啟預(yù)約,1月19日正式發(fā)布

旅游要聞

入境冰雪游訂單翻倍增長(zhǎng) 我國(guó)冰雪旅游魅力持續(xù)釋放

房產(chǎn)要聞

重磅調(diào)規(guī)!417畝商改住+教育地塊!??谖骱0队忠l(fā)!

血常規(guī)3項(xiàng)異常,是身體警報(bào)!

軍事要聞

官方確認(rèn):殲10CE在空戰(zhàn)中擊落多架戰(zhàn)機(jī)

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版