字典(dictionary)是 Python 中非常實用的資料結構,用來儲存一組"鍵(key)與值(value)"的配對。
與列表(list)不同,字典不是按照順序儲存資料,而是透過自訂的 key 來對應 value。
my_dict = {
"name": "喵喵",
"age": 25,
"country": "Taiwan"
}
用 大括號 {}
包起來,每組 "鍵: 值" 用冒號 :
連接,各對之間用逗號 ,
分隔
字典沒有索引(index),只能用 key 存取資料
字典最適合用在:
你要根據名稱、編號或標籤來快速存取資料,或是不知道會有哪些項目,但想即時建立紀錄或統計、
想用清楚的 key 名字代表意義(不像 list 只能用數字index)。
實際用途像是:
存放表單資料(例如:使用者資訊)
JSON 結構的 API 回傳
統計次數(像詞頻、練習次數)
組合設定檔、遊戲角色屬性
student = {
"name": "小明",
"age": 18,
"score": 92
}
student = {}
student = {
"name": "小明",
"age": 18,
"score": 92,
"contact": {
"email": "xiaoming@example.com",
"phone": "0912-345-678"
}
}
print(student["name"]) # 小明
key 不可重複(重複的話會被後面的覆蓋),例如
sample = {"a": 1, "a": 2} # 'a' 的值會是 2
如上,雖然 "a" 出現了兩次,但只會保留最後一次的設定。
而 value 可以重複(值可以一樣)
如果 key 不存在,會報錯:KeyError
多層查找:
print(student["contact"]["email"]) # xiaoming@example.com
5.取得所有的 key 或 value
#取全部keys
keys=student.keys()
print(keys) #會是 dict_values型態,不能直接取值
keys=list(keys) #轉成list型別後可以取值
#取全部values
values=student.values()
print(values) #會是 dict_values型態,不能直接取值
values=list(values) #轉成list型別後可以取值
#取全部 key 與 value 對
items=student.items() #會是 dict_values型態,不能直接取值
items=list(items) #轉成list型別後可以取值,print出來是
#[('name','小明'),('age', 18),...]這樣的tuple對型式
# 新增
student["gender"] = "male"
# 修改
student["score"] = 95
# 刪除
del student["age"] #del 的方式
student.pop("gender") #pop 的方式
student.popitem() #popitem 的方式用來刪除最後一個
#清光所有item
student.clear() #如果student print出來會是 {}
api_response = {
"status": "success",
"data": {
"id": 123,
"name": "Ning"
}
}
character = {
"name": "勇者",
"hp": 100,
"inventory": ["劍", "盾", "藥水"]
}
📊 計數器(詞頻或次數統計):
sentence = "I love Python because Python is great"
word_count = {}
for word in sentence.split():
word_count[word] = word_count.get(word, 0) + 1
或是
names = ["小明", "小美", "小明", "阿康", "小明"]
name_count = {}
for name in names:
name_count[name] = name_count.get(name, 0) + 1
print(name_count) # {'小明': 3, '小美': 1, '阿康': 1}
print(word_count)
使用 dict.get(key, default) 可以避免 key 不存在時出錯,並直接設定初始值為 0。
題目:請統計下面清單中每個人的出現次數。(答案參考在最下面)
names = ["小明", "小美", "小明", "阿康", "小明", "阿康"]
請使用字典建立一個 name_count
,記錄每個人出現了幾次。
(提示:用 for 迴圈 + dict.get)
這就是 Python 字典的基本用法與實際應用!熟悉這個資料結構,會讓你在處理資料、寫腳本、設計功能時更有效率。如果你想延伸學習 defaultdict 或如何搭配函式、列表一起使用,也可以繼續深入探索喔!
name_count = {}
for name in names:
name_count[name] = name_count.get(name, 0) + 1
print(name_count)
# 輸出結果:{'小明': 3, '小美': 1, '阿康': 2}
感謝看到這裡~