Lists & Dictionaries:
-Lists:
◆ 線性值的集合:想像一個抽屜櫃,每個抽屜裡都放著一個物品,物品的順序是固定的。
◆ 根據位置查找:就像在抽屜櫃裡找東西,會根據抽屜的位置(索引)來找到想要的物品。
◆ 簡單來說,列表有序,用數字索引來存取元素。
-Dictionaries:
◆ 鍵值對的集合:想像一個索引卡箱,每張索引卡上都有一个標籤(鍵)和對應的內容(值)。
◆ 根據標籤查找:就像在索引卡箱裡找東西,會根據索引卡上的標籤(鍵)來找到想要的內容。
◆ 簡單來說,字典無序,用唯一的鍵來存取值。
Dictionaries字典:
-字典是 Python 中功能最豐富的資料結構之一。
-字典能讓我們在 Python 中快速地執行類似資料庫的查詢和操作。
-其他程式語言中的相似概念:
◆ 關聯式陣列 (Associative Arrays) - Perl, PHP
◆ 屬性 (Properties) 或 Map 或 HashMap - Java
◆ 屬性包 (Property Bag) - C#, .Net
比較Lists和Dictionaries:
-Lists:
◆ 有序的集合,用索引 (index) 來存取元素。
◆ 元素可以重複。
◆ 就像一個有編號的抽屜櫃,每個抽屜裡放一個物品,你根據抽屜的編號(索引)找到物品。
◆ 更適合用來存儲一組有序的數據,例如一個購物清單或一個人的成績單。
-Dictionaries:
◆ 無序的集合,用鍵 (key) 來存取值 (value)。
◆ 鍵必須是唯一的。
◆ 就像一本字典,每個單字(鍵)都有對應的解釋(值),你根據單字找到解釋。
◆ 更適合用來存儲鍵值對,例如一個人的個人信息(姓名、年齡、地址等)。
-舉例:
字典常量(Dictionary Literals)
-字典是一種無序的集合,用來儲存鍵值對(key-value pairs)。
-大括號 {}: 用來表示一個字典。
-鍵值對: 字典中的元素,由鍵(key)和值(value)組成,中間用冒號 (:)分隔。
-鍵必須是唯一的: 在同一個字典中,每個鍵只能出現一次。
-值可以是任何資料類型: 可以是數字、字串、列表、甚至另一個字典。
-舉例:
字典追溯(Dictionary Traceback):
-使用字典時,如果嘗試存取一個不存在的鍵,就會發生錯誤,並產生追溯訊息。
-我們可以使用 in 運算子來檢查一個鍵是否存在於字典中。
-舉例:
-程式碼說明:
◆ 第二行試圖印出字典 ccc 中鍵為 'csev' 的值。然而,因為 ccc 是空的,所以不存在鍵 'csev',就會產生一個 KeyError。
◆ 第六行使用 in 運算子來檢查 'csev' 是否在字典 ccc 中,結果是 False,表示不存在。
get()方法:
-當我們想要從字典中取出一個值時,通常會使用鍵來索引。但是,如果我們試圖使用一個不存在的鍵來取值,就會引發 KeyError。
-為了避免這種錯誤,Python 提供了一個更安全的方法:get() 方法。這個方法允許我們從字典中獲取值,同時可以指定一個預設值,當指定的鍵不存在時,就會返回這個預設值。
-語法:dict.get(key, default=None)
◆ dict: 你要查詢的字典。
◆ key: 你要查詢的鍵。
◆ default: 如果鍵不存在,要返回的預設值。這個參數是可選的,如果不指定,則預設為 None。
-舉例:
取得鍵與值的列表:
-以從字典中取得鍵 (keys)、值 (values) 或鍵值對 (items) 的列表。
-舉例:
-程式碼說明:
◆ 第一行定義了一個字典,jjj 包含三組鍵值對:'chuck': 1、'fred': 42、'jan': 100。
◆ 第二行直接將字典 jjj 轉換為列表,它會自動取得字典中的鍵 (keys)。
◆ 第四行使用 keys() 方法顯示字典中的所有鍵。
◆ 第六行使用 values() 方法取得字典中的所有值。
◆ 第八行使用 items() 方法取得字典中的鍵值對,並將它們作為一組元組 (tuple) 放在列表中。
以上圖片皆出自於Coursera上的課程「Python for Everybody」來自University of Michigan。