iT邦幫忙

1

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

  • 分享至 

  • xImage
  •  

Dictionary 字典 和 Set 集合

Dictionary 字典

https://ithelp.ithome.com.tw/upload/images/20230815/200726513wMpc9zsjT.png

字典(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)

集合

https://ithelp.ithome.com.tw/upload/images/20230822/20072651R63QQWL402.jpg

集合(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

系列文章

分享所學貢獻社會
[Python教學]開發工具介紹
[開發工具] Google Colab 介紹
[Python教學] 資料型態
[Python教學] if判斷式
[Python教學] List 清單 和 Tuple元組
[Python教學] for 和 while 迴圈
[Python教學] Dictionary 字典 和 Set 集合
[Python教學] Function函示
[Python教學] Class 類別

最後最後有一件小小的請求,請大家幫我填寫一下問卷,
讓我們知道你想上怎麼樣課程,感激不盡。
問卷這邊

Facebook 粉絲頁 - TechMasters 工程師養成記

程式教育 - 工程師養成記

同步分享到部落格


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言