iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0

在 Python 中,集合(set) 是一種無序、不可重複的數據結構,用來存儲唯一的元素。集合中的元素是不可變的,即不能是可變類型,但集合本身是可變的,可以添加或刪除元素。

壹、創建集合

你可以使用大括號{}set()函數來創建集合。當集合中有重複元素時,集合會自動刪除重複項。

# 使用大括號創建集合
my_set = {1, 2, 3, 4, 4, 5}
print(my_set)  # 輸出: {1, 2, 3, 4, 5}

# 使用 set() 函數創建集合
my_set2 = set([1, 2, 3, 3, 4])
print(my_set2)  # 輸出: {1, 2, 3, 4}

貳、集合基本操作

  • 添加元素
    你可以使用add()方法向集合中添加單個元素,使用update()方法一次添加多個元素。
my_set = {1, 2, 3}
my_set.add(4)  # 添加單個元素
print(my_set)  # 輸出: {1, 2, 3, 4}

my_set.update([5, 6])  # 添加多個元素
print(my_set)  # 輸出: {1, 2, 3, 4, 5, 6}
  • 刪除元素
    可以使用remove()discard()方法來刪除元素,兩者的區別在於,remove()刪除不存在的元素會引發錯誤,而discard()不會。
my_set.remove(3)  # 刪除元素 3
print(my_set)  # 輸出: {1, 2, 4, 5, 6}

my_set.discard(10)  # 刪除不存在的元素,不會引發錯誤
  • 清空集合
    使用clear()方法可以清空集合中的所有元素。
my_set.clear()
print(my_set)  # 輸出: set()

參、集合運算

Python提供了多種集合運算,如交集、並集、差集等,這些運算符可以有效處理兩個集合的關係。

  • 並集(union)
    並集返回兩個集合中的所有元素,不包括重複元素。使用|運算符或union()方法。
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1 | set2
print(union_set)  # 輸出: {1, 2, 3, 4, 5}
  • 交集(intersection)
    交集返回兩個集合中都包含的元素。使用& 運算符或intersection()方法。
intersection_set = set1 & set2
print(intersection_set)  # 輸出: {3}
  • 差集(difference)
    差集返回屬於第一個集合但不屬於第二個集合的元素。使用-運算符或difference()方法。
difference_set = set1 - set2
print(difference_set)  # 輸出: {1, 2}
  • 對稱差集(symmetric difference)
    對稱差集返回兩個集合中不重複的元素。使用^運算符或symmetric_difference()方法。
symmetric_difference_set = set1 ^ set2
print(symmetric_difference_set)  # 輸出: {1, 2, 4, 5}

肆、集合的其他操作

  • 檢查元素是否存在於集合中
    使用in或not in檢查某個元素是否存在於集合中。
my_set = {1, 2, 3, 4}
print(2 in my_set)  # 輸出: True
print(5 not in my_set)  # 輸出: True
  • 遍歷集合
    你可以使用for循環來遍歷集合中的元素。
for item in my_set:
    print(item)
  • 計算集合的長度
    使用len()函數來計算集合中元素的個數。
print(len(my_set))  # 輸出: 4

伍、集合應用示例

集合非常適合用來處理需要唯一元素的情況,比如去除列表中的重複元素。

  • 去除列表中的重複元素
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_set = set(my_list)
unique_list = list(unique_set)
print(unique_list)  # 輸出: [1, 2, 3, 4, 5]
  • 判斷兩個集合的關係
    你可以使用issubset()issuperset()方法來判斷集合之間的包含關係。
set1 = {1, 2, 3}
set2 = {1, 2}
print(set2.issubset(set1))  # 輸出: True
print(set1.issuperset(set2))  # 輸出: True

上一篇
第8天:字典
下一篇
第10天:函數定義
系列文
python30天入門學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言