技術問答
技術文章
iT 徵才
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
第 11 屆 iThome 鐵人賽
DAY
25
1
自我挑戰組
從不懂,到玩上手的Python語言
系列 第
25
篇
Day25-複合資料結構:字典
11th鐵人賽
岳岳
團隊
CPR爆肝初心者
2019-10-11 22:05:46
1579 瀏覽
分享至
學習目標
• 何謂「字典」?為何需要「字典」?
• 「字典」相關的專有名詞介紹 & 應用
• 如何建造一個「字典」?
• 讀取 & 修改字典內的元素
• 字典的四大特性
何謂「字典」(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系列文
訂閱系列文
10
人訂閱
26
DAY26-物件導向設計
27
Day27-物件導向設計 :封裝部分
28
Day28-物件導向設計封裝部分:建構函數(Constructor)
29
Day29- 例外處理 (Exception)
30
Day30-總結30 天
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19845
篇
完賽人數
528
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
EPSON LQ-690C 印表機中一刀跑版
[Javascript] 非同步執行,如何延緩後面程式的處理 ??
AARQ 通訊協議是?
印表機設定 - Epson 690c
FortiGate SSLVPN替代方案?
Dell or Asus 伺服器,哪牌比較好?
Dell or Asus Storage 或NAS,哪牌比較好?
將硬碟上的 EFI 分割區複製到固態硬碟後,ARM 架構的 Ubuntu Server 無法啟動
sdray vigor2927 sslvpn ip設定問題
iT邦幫忙如何搜尋 關鍵字?
熱門回答
FortiGate SSLVPN替代方案?
EPSON LQ-690C 印表機中一刀跑版
[Javascript] 非同步執行,如何延緩後面程式的處理 ??
印表機設定 - Epson 690c
Dell or Asus 伺服器,哪牌比較好?
熱門文章
Vue 3 生命週期(Lifecycle) 四大階段 建立(Create)、掛載(Mount)、更新(Update)、 銷毀(Unmount)
台灣職場必學的Excel函數技巧
VScode 開發應用系統專案(8-1) - Spring Boot Security 設定與認證前置準備
什麼是四大報表及其組成?完整解析
c++的.h和cpp,放在相同目錄下好,還是頂層就用include,src分開好? [搬運/問答]
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}