Python Dictionary 字典

[Python教學] Dictionary 字典 和 Set 集合[Python教學]

Dictionary 字典 和 Set 集合

Dictionary 字典

Dictionary 字典

字典(Dictionary)是 Python 中一個常用的資料結構,用於儲存一組鍵值對(Key-Value pairs)。每個鍵對應到一個值,可以根據鍵來快速存取對應的值,它是一種無序的鍵值對集合,用於存儲可變的、可索引的資料。字典以大括號 {} 表示,每個鍵值對之間使用冒號 : 分隔。以下是字典的基本用法:

字典的特點:

  1. 無序性: 字典中的鍵值對是無序的,無法通過索引來訪問元素。
  2. 可變性: 字典的內容可以修改,包括添加新的鍵值對、修改已有的值,以及刪除鍵值對。
  3. 唯一鍵: 字典中的鍵是唯一的,不可重複。
  4. 任意類型: 字典的鍵和值可以是任意的 Python 物件,可以是數字、字串、元組等。

創建字典

使用 {} 大括號創建字典,每個鍵值對使用冒號 : 分隔,並且鍵值對之間使用逗號 , 分隔。

# 創建一個字典
student = {
    "name": "Alice",
    "age": 18,
    "gender": "female"
}

存取字典中的值

可以使用鍵來存取字典中的值。

# 存取字典中的值
print(student["name"])    # 輸出:Alice
print(student["age"])     # 輸出:18
print(student["gender"])  # 輸出:female

修改字典中的值

可以根據鍵來修改字典中的值。

# 修改字典中的值
student["age"] = 19
print(student["age"])  # 輸出:19

新增鍵值對

可以使用鍵來新增鍵值對。

# 新增鍵值對
student["city"] = "New York"
print(student)
# 輸出:{'name': 'Alice', 'age': 19, 'gender': 'female', 'city': 'New York'}

刪除鍵值對

可以使用 del 關鍵字來刪除字典中的鍵值對。

# 刪除鍵值對
del student["gender"]
print(student)
# 輸出:{'name': 'Alice', 'age': 19, 'city': 'New York'}

檢查鍵是否存在

可以使用 in 關鍵字來檢查特定的鍵是否存在於字典中。

# 檢查鍵是否存在
if "age" in student:
    print("age 鍵存在")
else:
    print("age 鍵不存在")

字典是一個非常有用的資料結構,能夠幫助你組織和存儲各種資料,並且支援快速的存取和修改操作。

在 Python 中,你可以使用迴圈來輪詢字典中的鍵和值。有幾種方式可以實現這個輪詢的過程,讓我們來看看幾個例子:

輪詢字典的鍵

你可以使用 for 迴圈來輪詢字典的鍵。

student = {
    "name": "Alice",
    "age": 18,
    "city": "New York"
}

for key in student:
    print(key)
# 輸出:name
# 輸出:age
# 輸出:city

輪詢字典的值

你可以使用 .values() 方法來輪詢字典的值。

for value in student.values():
    print(value)
# 輸出:Alice
# 輸出:18
# 輸出:New York

輪詢字典的鍵值對

你可以使用 .items() 方法來輪詢字典的鍵值對,並同時取得鍵和值。

for key, value in student.items():
    print(f"{key}: {value}")
# 輸出:name: Alice
# 輸出:age: 18
# 輸出:city: New York

這些方法可以幫助你在迴圈中有效地輪詢字典的內容,並進行相應的操作。無論是輪詢鍵、值,還是鍵值對,都能夠很方便地進行。

字典常用方法

方法說明範例
len(dictionary)返回字典中鍵值對的數量。len(my_dict)
dictionary[key]通過鍵取得對應的值。value = my_dict[‘key’]
dictionary[key] = value通過鍵設定新的鍵值對。my_dict[‘new_key’] = ‘new_value’
key in dictionary檢查指定的鍵是否存在於字典中,返回布林值。if ‘key’ in my_dict:
dictionary.get(key)返回指定鍵對應的值,如果鍵不存在,則返回指定的預設值。value = my_dict.get(‘key’, default)
dictionary.pop(key)刪除指定鍵的鍵值對,返回對應的值。removed_value = my_dict.pop(‘key’)
dictionary.keys()返回字典中所有的鍵的列表。keys_list = my_dict.keys()
dictionary.values()返回字典中所有的值的列表。values_list = my_dict.values()
dictionary.items()返回字典中所有的鍵值對的元組列表。items_list = my_dict.items()
dictionary.clear()清空字典中的所有鍵值對,使其變為空字典。my_dict.clear()
dictionary.copy()返回字典的副本。new_dict = my_dict.copy()
dictionary.update(other_dict)將另一個字典的鍵值對更新到原字典中。my_dict.update(new_dict)
dictionary.setdefault(key, default)返回指定鍵對應的值,如果鍵不存在,則設定該鍵的值為預設值。value = my_dict.setdefault(‘key’, default)

集合

Set 集合

集合(Set)是 Python 中的一種無序、可變的資料結構,用於存儲多個元素,且集合中的元素是唯一的(不重複)。集合使用大括號 {} 來定義,元素之間使用逗號 , 分隔。

my_set = {1, 2, 3}
another_set = set([3, 4, 5])

集合有以下特點:

  1. 元素無序:集合中的元素沒有固定的順序,因此無法使用索引來訪問。
  2. 元素唯一:集合中的元素是唯一的,不會有重複的元素。
  3. 可變性:集合中的元素可以被新增、刪除和修改。

你可以使用集合來解決需要存儲一組元素,但不需要考慮元素順序和重複的問題的情況。
集合提供了各種方法來執行集合間的交集、聯集、差集等操作。

新增元素到集合

my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  # 輸出:{1, 2, 3, 4}

刪除元素從集合

my_set = {1, 2, 3, 4}
my_set.remove(3)
print(my_set)  # 輸出:{1, 2, 4}

刪除元素但不引發錯誤,如果元素不存在:

my_set = {1, 2, 3, 4}
my_set.discard(5)  # 元素 5 不存在於集合,但不會引發錯誤
print(my_set)      # 輸出:{1, 2, 3, 4}

清空集合

my_set = {1, 2, 3, 4}
my_set.clear()
print(my_set)  # 輸出:set()

複製集合

original_set = {1, 2, 3}
new_set = original_set.copy()
print(new_set)  # 輸出:{1, 2, 3}

您可以根據這些範例來理解集合的新增、修改和刪除操作。

集合運算

運算符號 / 方法範例
AND交集&set1 & set2
交集方法.intersection(set2)set1.intersection(set2)
OR聯集|set1 | set2
聯集方法.union(set2)set1.union(set2)
XOR差集-set1 - set2
差集方法.difference(set2)set1.difference(set2)

集合常用方法

方法 / 操作說明範例
add(element)新增元素到集合my_set = {1, 2, 3}
my_set.add(4)
# 現在 my_set = {1, 2, 3, 4}
remove(element)移除元素從集合,如果元素不存在會引發錯誤my_set = {1, 2, 3, 4}
my_set.remove(3)
# 現在 my_set = {1, 2, 4}
discard(element)移除元素從集合,元素不存在不會引發錯誤my_set = {1, 2, 3, 4}
my_set.discard(5)
# 現在 my_set = {1, 2, 3, 4}
pop()移除並回傳任意元素my_set = {1, 2, 3}
removed_element = my_set.pop()
clear()清空集合my_set = {1, 2, 3}
my_set.clear()
# 現在 my_set = set()
copy()複製集合original_set = {1, 2, 3}
new_set = original_set.copy()
len(set)回傳集合中元素的數量my_set = {1, 2, 3}
length = len(my_set)
# length 為 3
element in set檢查元素是否在集合中my_set = {1, 2, 3}
result = 2 in my_set
# result 為 True
set1.union(set2)回傳兩個集合的聯集set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1.union(set2)
set1.intersection(set2)回傳兩個集合的交集set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection_set = set1.intersection(set2)
set1.difference(set2)回傳 set1 減去 set2 的差集set1 = {1, 2, 3}
set2 = {3, 4, 5}
difference_set = set1.difference(set2)
set1.symmetric_difference(set2)回傳兩個集合的對稱差集set1 = {1, 2, 3}
set2 = {3, 4, 5}
symmetric_difference_set = set1.symmetric_difference(set2)
set1.issubset(set2)檢查 set1 是否是 set2 的子集set1 = {1, 2}
set2 = {1, 2, 3}
result = set1.issubset(set2)
# result 為 True
set1.issuperset(set2)檢查 set1 是否是 set2 的超集set1 = {1, 2, 3}
set2 = {1, 2}
result = set1.issuperset(set2)
# result 為 True

Scroll to Top