Python 的關聯陣列(字典類型)完全指南|從基本操作到進階應用的徹底解說

1. 在 Python 中的關聯陣列(字典)是什麼?

Python 的「關聯陣列」是一種使用鍵(key)與值(value)配對來管理資料的資料結構。
通常被稱為「關聯陣列」的資料結構,在 Python 中是以 dict 類型來實現的。
例如,可以使用名字作為鍵,將年齡或職業作為值來儲存,這樣可以更有效地進行資料查詢與管理。
這裡所說的「鍵」,是用來唯一識別資料的識別子,每個鍵都必須是唯一的。

字典類型與其他資料結構的差異

字典類型的特色在於能夠透過鍵進行快速查詢。
與 Python 中的串列(list)或元組(tuple)等序列型資料結構相比,字典不需要逐一查找元素,而是可以直接透過鍵存取資料,因此查詢速度大幅提升。
特別是在處理大量資料或需要頻繁查詢的情況下,字典類型非常實用。

# 字典的範例
person = {
    "名前": "田中",
    "年齢": 30,
    "職業": "エンジニア"
}
print(person["名前"])  # 輸出: 田中

2. 如何建立 Python 字典

在 Python 中可以透過多種方式建立字典。
例如使用字面量語法、dict() 函數、zip() 函數等,可以根據不同情境選擇最適合的方法。

使用字面量語法建立字典

字面量語法是使用大括號 {} 來建立字典,這是最常見也最簡單的方式。
透過字面量語法可以在一行中定義鍵與值,直觀且容易理解。

# 字面量語法
fruit_prices = {
    "りんご": 100,
    "バナナ": 150,
    "オレンジ": 200
}

使用 dict() 函數建立字典

dict() 函數適用於從元組列表等結構建立字典。
這種方式特別適合在資料是動態變化時使用。

# 使用 dict 函數
fruit_prices = dict([("りんご", 100), ("バナナ", 150), ("オレンジ", 200)])

使用 zip() 函數建立字典

當有兩個分別代表鍵與值的列表時,可以使用 zip() 函數來簡潔地建立字典。
這樣可以有效率地從兩個對應的列表產生字典。

# 使用 zip 函數
keys = ["りんご", "バナナ", "オレンジ"]
values = [100, 150, 200]
fruit_prices = dict(zip(keys, values))
侍エンジニア塾

3. 基本的な辞書操作

Python 的字典是一種可變動(mutable)的資料結構,可以靈活地新增、更新或刪除資料。
與其他資料結構相比,字典具有更快的查詢速度,是其一大特色。

新增與更新元素

要在字典中新增或更新元素,只需要指定鍵並賦予相應的值即可。
若指定的鍵已存在,則會更新其對應的值;若鍵不存在,則會新增一筆新資料。

fruit_prices = {"りんご": 100, "バナナ": 150}
# 新增元素
fruit_prices["オレンジ"] = 200
# 更新已有的元素
fruit_prices["りんご"] = 120

刪除元素

若要刪除具有特定鍵的元素,可以使用 del 陳述式或 pop() 方法。
pop() 方法會回傳被刪除的值,適合在需要保留刪除資料的情況下使用。

# 使用 del 陳述式刪除
del fruit_prices["バナナ"]
# 使用 pop 方法刪除(可以取得被刪除的值)
removed_price = fruit_prices.pop("オレンジ")

4. 進階應用操作

字典的進階用法包含與其他字典合併、以及進行出現頻率的統計等。
這些功能能夠讓資料處理更加靈活與強大。

合併字典

若要將多個字典合併為一,可以使用 update() 方法。
若出現重複的鍵,後面的值會覆蓋前面的,因此可以同時進行資料的合併與更新。

dict1 = {"りんご": 100, "バナナ": 150}
dict2 = {"バナナ": 200, "ぶどう": 300}
dict1.update(dict2)
# 輸出: {'りんご': 100, 'バナナ': 200, 'ぶどう': 300}

應用於出現頻率統計

出現頻率統計在需要計算某些資料(例如字串中各字元)的出現次數時非常實用。
使用字典可以高效地進行資料的統計與分析。

text = "apple"
frequency = {}
for char in text:
    if char in frequency:
        frequency[char] += 1
    else:
        frequency[char] = 1
# 輸出: {'a': 1, 'p': 2, 'l': 1, 'e': 1}

 

5. 遍歷字典的迴圈處理

若要一次處理字典中所有元素,可以使用迴圈。
這樣可以針對每個鍵或值進行操作,或取得整個資料列表。

透過迴圈取得鍵與值

在處理字典中的鍵、值或鍵值對時,可使用 keys()values()items() 方法。

fruit_prices = {"りんご": 100, "バナナ": 150, "オレンジ": 200}
# 僅取得鍵
for key in fruit_prices.keys():
    print(key)
# 僅取得值
for value in fruit_prices.values():
    print(value)
# 同時取得鍵與值
for key, value in fruit_prices.items():
    print(f"{key}の価格は{value}円です")

6. Python 字典的總結

Python 的字典(關聯陣列)透過鍵與值的配對方式管理資料,大幅提升了資料查詢與操作的效率。
相較於 list 或 tuple,字典擁有更快的查詢速度,因此在處理大量資料時具有優勢。
此外,它也適用於資料統計、分析以及與其他資料結構的結合,是 Python 資料處理中不可或缺的工具。
只要熟悉字典的操作,就能實現更高階且高效的資料處理。