Python - 字典

嗨,有抱负的程式設計師們!今天,我們將深入探討 Python 字典的迷人世界。作為你友善的鄰居電腦科學老師,我非常高興能夠引導你完成這次旅程。所以,拿起你最喜歡的飲料,放鬆一下,讓我們一起踏上這次冒險吧!

Python - Dictionaries

Python 中的字典

想象一下你在創建一個數位通訊錄。你想儲存關於你朋友的信息,例如他們的名字、電話號碼和電子郵件地址。你會怎麼做呢?讓我們來介紹 Python 字典!

Python 中的字典就像實際的字典一樣,但不是储存詞語定義,而是储存鍵值對。它是一個無序、可變且不允許重複的集合。

字典的主要特性

  1. 鍵值對:字典中的每個項目都包含一個鍵和其相應的值。
  2. 無序:與列表不同,字典沒有特定的順序。
  3. 可變:在創建字典後,你可以添加、刪除或修改項目。
  4. 不允許重複:字典中的每個鍵必須是唯一的。

創建字典

讓我們從創建第一個字典開始:

my_friend = {
"name": "Alice",
"age": 25,
"city": "New York"
}

在這個例子中,我們創建了一個名為 my_friend 的字典。鍵是 "name"、"age" 和 "city",它們對應的值分別是 "Alice"、25 和 "New York"。

你也可以創建一個空字典並稍後添加項目:

empty_dict = {}
another_dict = dict()  # 使用 dict() 构造函数

訪問字典項目

要訪問字典中的項目,你可以在方括號中使用鍵名:

print(my_friend["name"])  # 輸出:Alice

你也可以使用 get() 方法,這更安全,因為如果鍵不存在,它會返回 None(而不是引發錯誤):

print(my_friend.get("age"))  # 輸出:25
print(my_friend.get("job"))  # 輸出:None

修改字典項目

字典是可變的,意味著我們可以在創建後更改其內容:

# 更改一個值
my_friend["age"] = 26

# 添加新的鍵值對
my_friend["job"] = "Engineer"

print(my_friend)
# 輸出:{'name': 'Alice', 'age': 26, 'city': 'New York', 'job': 'Engineer'}

刪除字典項目

有幾種方法可以從字典中刪除項目:

# 刪除特定的項目
del my_friend["age"]

# 刪除並返回一個項目
job = my_friend.pop("job")

# 刪除最後插入的項目
last_item = my_friend.popitem()

print(my_friend)  # 輸出:{'name': 'Alice'}

迭代字典

你可以以幾種方式遍歷字典:

# 迭代鍵
for key in my_friend:
print(key)

# 迭代值
for value in my_friend.values():
print(value)

# 迭代鍵和值
for key, value in my_friend.items():
print(f"{key}: {value}")

字典鍵的屬性

字典鍵有一些重要的屬性:

  1. 鍵必須是不可變的(如字符串、數字或元組)。
  2. 鍵在字典中必須是唯一的。

例如:

valid_dict = {
"string_key": "value1",
42: "value2",
(1, 2): "value3"
}

# 這會引發錯誤:
# invalid_dict = {[1, 2]: "value"}  # 列表不能作為鍵

Python 字典運算符

Python 提供了一些有用的字典運算符:

# 合併字典(Python 3.5+)
dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4}
merged = {**dict1, **dict2}
print(merged)  # 輸出:{'a': 1, 'b': 2, 'c': 3, 'd': 4}

# 檢查鍵是否存在
if "name" in my_friend:
print("Name is in the dictionary")

Python 字典方法

以下是常用字典方法的表格:

方法 描述
clear() 刪除字典中的所有項目
copy() 返回字典的淺拷貝
fromkeys() 創建一個新的字典,具有指定的鍵和值
get() 返回指定鍵的值
items() 返回字典的(鍵,值)元組對列表
keys() 返回字典鍵的列表
pop() 刪除並返回具有指定鍵的元素
popitem() 刪除並返回最後插入的鍵值對
setdefault() 返回指定鍵的值。如果鍵不存在:插入鍵,並指定值
update() 使用指定的鍵值對更新字典
values() 返回字典中所有值的列表

字典內建函數

Python 提供了幾個與字典一起使用的內建函數:

# 字典的長度
print(len(my_friend))

# 字典的類型
print(type(my_friend))

# 將其他數據類型轉換為字典
list_of_tuples = [("a", 1), ("b", 2)]
dict_from_list = dict(list_of_tuples)
print(dict_from_list)  # 輸出:{'a': 1, 'b': 2}

就這樣,各位!我們已經穿越了 Python 字典的土地,從創建到操作,從迭代到內建函數。記住,熟練才能生巧,所以不要害怕在自己的代碼中實驗這些概念。

在我們結束之前,讓我分享一點程式設計的幽默:為什麼 Python 程式設計師喜歡使用字典呢?因為他們總是知道自己的鍵在哪里!?

繼續編程,保持好奇,並記住:在編程的世界裡,每個錯誤都是一個新的學習機會。下次再見,編程愉快!

Credits: Image by storyset