## AI寫程式的時代,基礎更顯重要 {#sec-1e8becde6653} 如今 AI 能在瞬間產出程式碼。只要說「在 Python 中把字典的鍵取出來」,AI 便會在一秒內給出答案。但我們為何還需要親自學習這些簡單的方法呢? 這不僅僅是為了背「語法」而已。寫程式的本質是**控制資料的流向與轉換**。資料從 CPU 經過螢幕顯示,或經由網路 (HTTP) 傳輸到遠端時,都必須依需求不斷換「衣服」。 在 Python 中最強大的「衣服」就是 **Dictionary(字典)**,而根據情境將它轉成 **List(列表)** 的技巧,並非單純的基礎,而是貫通資料之路的關鍵工具。掌握這條路徑,才能在 AI 產出的程式出錯時,說出「喔,這裡的資料型別搞錯了!」,從容修正。 ![混亂的資料與開發者的相遇](/media/editor_temp/6/c8e4d249-e15b-4a34-bd7f-310b8c7a8588.png) --- ## 1. 為何要把字典拆成列表? {#sec-d0c88e710c3f} 字典是一個由 **「鍵(Key):值(Value)」** 組成的聰明容器。但有時候只需要「名牌(Key)」,有時候則需要把「內容(Value)」單獨取出並排序。 舉例來說,若想把網站上已登入使用者的 ID 只取出來,並依字母順序顯示,直接從整個字典搬運會很低效,直接抽出鍵製成列表才是最佳做法。 --- ## 2. 實戰:字典拆解秀(核心方法) {#sec-9f6c6520f1bb} ### 🏷️ 只取名牌:`keys()` {#sec-0c378f391767} 從字典中僅提取「鍵」。這是最常用的轉換。 ```python # 我電腦的零件庫存狀態 inventory = {'CPU': 5, 'GPU': 2, 'RAM': 10} # 只取品項名稱做成列表以供報告 item_names = list(inventory.keys()) print(item_names) # 輸出: ['CPU', 'GPU', 'RAM'] ``` ### 📦 只取內容:`values()` {#sec-fbf40586bca1} 當只需要數值資料來計算總和或平均時,這個方法必不可少。 ```python # 想把所有庫存數量加起來? counts = list(inventory.values()) print(counts) # 輸出: [5, 2, 10] print(sum(counts)) # 總庫存: 17 ``` ### 🤝 同時取得鍵和值:`items()` {#sec-800f80a247a2} 在將資料傳遞給其他系統或徹底改變格式時使用。會回傳包含「鍵」與「值」的 tuple 列表。 ```python # 把資料轉成 (品項, 數量) 形式的列表 pairs = list(inventory.items()) print(pairs) # 輸出: [('CPU', 5), ('GPU', 2), ('RAM', 10)] ``` --- ## 3. 再更聰明一點:排序與應用 {#sec-35564b9943fb} 資料往往需要**排序**後才能更好地呈現給接收端。搭配 `sorted()`,資料轉換更上一層樓。 ```python my_dict = {'b': 2, 'a': 1, 'c': 3} # 依字母順序排列鍵並製成列表 sorted_keys = sorted(my_dict.keys()) print(sorted_keys) # 輸出: ['a', 'b', 'c'] # 依數值大小排序值並製成列表 sorted_values = sorted(my_dict.values()) print(sorted_values) # 輸出: [1, 2, 3] ``` --- ## 4. 一目了然的轉換工具表 {#sec-a5871f8d0646} | 想要的結果 | 使用的方法 (Method) | 範例結果 | | --- | --- | --- | | **只要鍵** 列表 | `list(dict.keys())` | `['name', 'age']` | | **只要值** 列表 | `list(dict.values())` | `['Alice', 25]` | | **鍵值配對** 列表 | `list(dict.items())` | `[('name', 'Alice'), …]` | | **排序後的鍵** 列表 | `sorted(dict.keys())` | 依字母/數字順序 | --- ## 結語:比「怎麼做」更重要的是「為什麼」 {#sec-76f8c7446de3} 單純背下 `list(my_dict.keys())` 沒什麼意義。關鍵是要有 **「現在手上的這塊資料,要以何種形狀雕刻,才能交給下一個步驟」** 的感覺。 在 AI 為我們寫程式的時代,我們必須成為規劃整體 **資料流 (Data Flow)** 的建築師。能自在在字典與列表之間切換的基礎方法,正是讓你的工具與更廣闊的世界(網路、其他程式語言、資料庫)溝通的第一道門檻。 基礎並非枯燥,而是支撐你創意的最堅固基石。 --- **相關文章** - [把程式碼變成藝術的 3 個 Pythonic 時刻](/ko/whitedec/2025/11/4/pythonic-code-moments/) - [在 Python 中使用 ** 運算子合併字典與鍵映射](/ko/whitedec/2025/12/26/python-dict-merge-operator/) - [Python __init__ 的角色與用法](/ko/whitedec/2025/11/4/python-init-usage/)