Dictionary (字典)
2024年11月12日大约 3 分鐘
學習內容:
- 了解什麼是 Dictionary(字典)及其特性
- 學習如何創建和操作字典
- 理解字典中的鍵值對(Key-Value Pair)
- 使用字典的常見方法(如
get()、keys()、values()等) - 探索字典的迭代與解包技巧
什麼是 Dictionary (字典)?
Dictionary 是一種內建的資料結構,用於存儲鍵值對(Key-Value Pair)。每個鍵(Key)都是唯一的,並且鍵用來查找對應的值(Value)。字典使用大括號 {} 表示,鍵和值之間用冒號 : 分隔。
範例
person = {
"name": "Alice",
"age": 25,
"city": "Taipei"
}在上面的例子中,"name"、"age" 和 "city" 是鍵,而 "Alice"、25 和 "Taipei" 是對應的值。
創建和操作字典
創建字典
可以直接使用大括號 {} 或使用 dict() 函數來創建字典。
# 使用大括號
student = {
"id": 123,
"name": "Bob",
"grade": "A"
}
# 使用 dict() 函數
book = dict(title="Python Programming", author="John", year=2022)訪問字典中的值
使用鍵來查找對應的值。
print(student["name"]) # Bob
print(book["title"]) # Python Programming注意:如果使用不存在的鍵來訪問值,會引發
KeyError。
添加和更新字典元素
添加新鍵值對
可以直接為字典指定一個新鍵來添加元素。
student["age"] = 20
print(student) # {'id': 123, 'name': 'Bob', 'grade': 'A', 'age': 20}更新現有鍵的值
student["grade"] = "A+"
print(student) # {'id': 123, 'name': 'Bob', 'grade': 'A+', 'age': 20}刪除字典元素
使用 del 刪除鍵值對
del student["age"]
print(student) # {'id': 123, 'name': 'Bob', 'grade': 'A+'}使用 pop() 方法
pop() 會刪除指定的鍵,並返回刪除的值。
grade = student.pop("grade")
print(grade) # A+
print(student) # {'id': 123, 'name': 'Bob'}使用 clear() 清空整個字典
student.clear()
print(student) # {}常見的字典方法
get()
用於安全地獲取值,當鍵不存在時返回 None 或指定的預設值。
age = person.get("age") # 25
height = person.get("height", "Not specified") # "Not specified"keys()、values() 和 items()
keys():返回所有鍵values():返回所有值items():返回所有鍵值對,作為 (鍵, 值) 的元組
print(person.keys()) # dict_keys(['name', 'age', 'city'])
print(person.values()) # dict_values(['Alice', 25, 'Taipei'])
print(person.items()) # dict_items([('name', 'Alice'), ('age', 25), ('city', 'Taipei')])遍歷字典
可以使用 for 迴圈來遍歷字典的鍵、值或鍵值對。
遍歷鍵
for key in person:
print(key) # name, age, city遍歷值
for value in person.values():
print(value) # Alice, 25, Taipei遍歷鍵值對
for key, value in person.items():
print(f"{key}: {value}") # name: Alice, age: 25, city: Taipei字典解包 (Unpacking)
可以使用 ** 將字典解包成函數的參數。
範例
def greet(name, age):
print(f"Hello, my name is {name} and I am {age} years old.")
info = {"name": "Charlie", "age": 30}
greet(**info) # Hello, my name is Charlie and I am 30 years old.字典的應用場景
- 數據映射:例如,將學生成績對應到學生姓名。
- 存儲配置:使用字典存儲程序的配置參數,方便查找和更新。
- 統計計數:用字典來計算元素出現的次數。
範例:統計計數
words = ["apple", "banana", "apple", "orange", "banana", "apple"]
count = {}
for word in words:
count[word] = count.get(word, 0) + 1
print(count) # {'apple': 3, 'banana': 2, 'orange': 1}練習
- 創建一個字典,存儲你喜愛的三部電影及其上映年份,並使用
get()方法來安全地訪問其中一部電影的年份。 - 編寫一個程式,模擬簡單的學生成績記錄系統,可以添加學生和成績,並計算出所有學生的平均分數。
- 使用字典來存儲產品價格,並編寫程式查找最貴和最便宜的產品。
