技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
第 11 屆 iThome 鐵人賽
DAY
25
1
自我挑戰組
從不懂,到玩上手的Python語言
系列 第
25
篇
Day25-複合資料結構:字典
11th鐵人賽
岳岳
團隊
CPR爆肝初心者
2019-10-11 22:05:46
1140 瀏覽
分享至
學習目標
• 何謂「字典」?為何需要「字典」?
• 「字典」相關的專有名詞介紹 & 應用
• 如何建造一個「字典」?
• 讀取 & 修改字典內的元素
• 字典的四大特性
何謂「字典」(Dict)
• 以 { } 括住、儲存「對照表」類型資料的結構
為何要叫「字典」(Dict)
•「字典」也是一種「對照表」
「字典(Dict)」專有名詞介紹
•鍵(Keys)、值(Values)、鍵值對(Key-Value Pairs)
→ 事實上,底層是用 tuple(Key, Value) 這樣的機制儲存的
「字典」常見的應用
•查閱(Lookup)
•轉換(Translate)
建造一個「字典」
• 空字典
• d = {}
• d = dict()
•一般字典
• 標準: d = {“USD”:30.24, “JPY”:0.276, “RMB”:4.541}
• 元組: d = dict([(“USD”, 30.24), (“JPY”, 0.276), (“RMB”, 4.541)])
•等號: d = dict(USD=30.24, JPY=0.276, RMB=4.541)
•ZIP: d = dict(zip(("USD", "JPY", "RMB"), (30.24, 0.276, 4.541)))
字典元素的讀取與修改
•讀取
•d = {“USD”:30.24, “JPY”:0.276, “RMB”:4.541}
•d[“USD”] → 30.24
•d[“EUR”] → 讀取不存在的 Key,傳回 KeyError
•修改
•d = {“USD”:30.24, “JPY”:0.276, “RMB”:4.541}
•d[“USD”] = 31.02
→ d = {“USD”:31.02, “JPY”:0.276, “RMB”:4.541}
•d[“EUR”] = 35.636 → 寫入不存在的 Key,會新增一個元素
字典四大特性
(1) Key 必須是 Immutable
(2) Key 不可重複,後者會蓋掉前者
(3) 字典是「無序」的(Python 3.6 開始,盡量保持原始順序)
(4) 字典本身是 Mutable 的
•可增減字典內的元素
•Python 提供一組增減字典元素的函數,供程式師使用
重點整理
何謂「字典」
以「大括號 { }」括住、每筆元素包含「鍵:值」對應關係的資料。
「字典」的應用時機
查閱(Lookup)& 轉換(Translate)
建造一個字典
空字典:d = { }; d = dict()
一般字典
標準: d = {“USD”:30.24, “JPY”:0.276, “RMB”:4.541}
元組: d = dict([(“USD”, 30.24), (“JPY”, 0.276), (“RMB”, 4.541)])
等號: d = dict(USD=30.24, JPY=0.276, RMB=4.541)
ZIP: d = dict(zip(("USD", "JPY", "RMB"), (30.24, 0.276, 4.541)))
讀寫字典內的元素
讀取: d[“USD”]
寫入: d[“USD”] = 31.02
字典四大特性
Key 不可更改(Immutable)、Key 不可重複、鍵值對「無序」、鍵值對可更改(Mutable)
留言
追蹤
檢舉
上一篇
Day24-函數
下一篇
DAY26-物件導向設計
系列文
從不懂,到玩上手的Python語言
共
30
篇
目錄
RSS系列文
訂閱系列文
9
人訂閱
26
DAY26-物件導向設計
27
Day27-物件導向設計 :封裝部分
28
Day28-物件導向設計封裝部分:建構函數(Constructor)
29
Day29- 例外處理 (Exception)
30
Day30-總結30 天
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22209
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
2025年的未來規劃
如何阻止系統再次安裝 KB5048652 更新(或某一個更新)
如何簡單的建立 mail 的測試環境
隨身碟突然有防寫保護
請問有人知道有無HTML標籤管制的外掛嗎?
鐵人賽頒獎典禮
請問EXECL如何開啟"獨立"活頁薄
RAID5 - Synology DickStation 自動更新已取消
從外部網路 連線VPN後非共享的資料夾都可以看是什麼問題
Nginx 同個 domain name alias 多個專案問題
熱門回答
2025年的未來規劃
如何簡單的建立 mail 的測試環境
請問EXECL如何開啟"獨立"活頁薄
FortiGate IPSec VPN環境下使用Radius Server
隨身碟突然有防寫保護
熱門文章
透過Python處理英文 PDF 論文或大量英文文本設計的自動化翻譯工具
BitMeter II 多國語言免費軟體,可記錄電腦網路流量,日,周,月,年流量統計圖表
Day 42 - toSignal 函數中的相等性檢查
Benchmarking Quantum and Quantum Inspired Optimization Solvers(NotebookLM + descript AI)
【JavaScript】call / apply / bind
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}