`字典(dict)`是Python中的基本容器型態之一 ## 1. 字典的基本組成 字典是一種**無序的**、**可變的**、可存儲**異質**對象的數據結構。字典的每一項由鍵(Key)和值(Value)兩部分構成,這種結構稱為鍵值對(key-value pair)。字典是由花括號{}包裹起來的一系列鍵值對。 ## 2. 如何建立一個字典 在Python中,我們使用以下的方式來創建一個字典: ```py! dict1 = { 'key1': 'value1', 'key2': 'value2', 'key3': 'value3' } ``` 也可以使用內建的dict函式來創建字典: ```py! dict2 = dict(key1='value1', key2='value2', key3='value3') ``` ### 字典生成式 字典生成式(Dictionary comprehension)是一種從其他數據結構創建字典的便捷方式。以下是一個例子: ```python! numbers = [1, 2, 3, 4, 5] square_dict = {n: n**2 for n in numbers} ``` 在這個例子中,我們創建了一個將數字映射到其平方的字典。 ## 3. 為什麼要使用字典 字典的主要優勢是其高效的查詢效能。當我們想要找到一個元素時,如果使用列表,我們需要從頭到尾查找,效能為O(n);而如果使用字典,我們可以直接用鍵查找到對應的值,效能接近O(1)。這一點在處理大量數據時特別重要。 ## 4. 字典的常用函式 `dict.keys()`:返回一個包含所有鍵的視圖。 `dict.values()`:返回一個包含所有值的視圖。 `dict.items()`:返回一個包含所有鍵值對的視圖。 `dict.get(key, default)`:返回指定鍵的值,如果鍵不存在,則返回默認值。 `dict.update(other)`:將其他字典的鍵值對添加到字典中。 `dict.pop(key, default)`:刪除並返回指定鍵的值,如果鍵不存在,則返回默認值。 ## 5. 如何遍歷一個字典 我們可以使用for循環來遍歷字典的鍵、值或鍵值對: ```python! # 遍歷鍵 for key in dict1.keys(): print(key) # 遍歷值 for value in dict1.values(): print(value) # 遍歷鍵值對 for key, value in dict1.items(): print(f"Key: {key}, Value: {value}") ``` --- # 練習題 ## 題目一:書本的價格 ### 情境 假設你正在書店裡,你有一份書單,並且你想要知道每本書的價格。以下是你的書單和每本書的價格: 書單價格:`{'數學': 300, '國語': 250, '英文': 350}` ### 輸入說明 一個字串,代表你想要知道價格的書的名稱。 ### 輸出說明 一個整數,代表該書的價格。 --- ## 題目二:成績查詢系統 ### 情境 班導師知道你有在學Python,他想請你幫他用程式建立一個學生的成績查詢系統,讓老師只要輸入學生名字,程式就會輸出該學生的成績。 ### 輸入說明 第一行輸入一個正整數$n$,代表總共有$n$個學生 第二行輸入$n$個學生的名字 第三行輸入$n$個學生的成績 輸入範例: ``` 3 Apirl Beck Carl 100 89 70 ``` ### 輸出說明 讓使用者輸入一個名字,如果有這個名字的資料就輸入該名字的分數,如果沒有則輸出`"查無此人"` --- ## 題目三:成績統計 老師將班上同學的績分為A, B, C, D, F,五種等級,老師希望你寫一個程式幫他統計,這五種等級的1.學生數量各有多少 2.最多的是那一個等級 ### 輸入說明 輸入一個由ABCDF組成的字串 輸入範例: ``` ABCABCABCDCDCDFFAABCDF ``` ### 輸出說明 輸出這五種等級的1.學生數量各有多少 2.最多的是那一個等級 輸出範例: ``` A: 5人 B: 4人 C: 6人 D: 4人 F: 3人 最多人的類別是C,共有6人 ```