集合 (Set)

Python SELF TW
等級 9 , 課堂 1
開放

1.1 認識集合

集合的概念從數學中來到程式設計中。 集合是一組獨一無二的元素。這個特點讓集合在程式設計中成為一個強大的工具,具有許多獨特的功能。

什麼是一組獨一無二的元素?想像一下「國家最受歡迎名字的前10名列表」。這個定義的本質意味著列表中的每個名字都是唯一的,不會重複。只有這些名字的持有者可能會重複。

或者想像一下你的郵票收藏。你從每個國家收集一枚郵票。你的收藏是一個郵票集合,每枚郵票都是獨一無二的,你不希望有兩枚相同的郵票。這就是集合的概念。

集合的主要特性

唯一性

集合是一組獨特的物品。想像一下你有一個需要聯絡的客戶手機號碼列表。在這個列表中,每個號碼都應該是唯一的,這樣就不會有重複的電話騷擾。

無序性

集合不在乎物品的順序。就像你把水果放進籃子裡,不去擔心什麼在底部,什麼在上面。最重要的是籃子裡的水果都有不同。

可變性

你可以隨時增加或者移除集合中的物品。就像你可以隨時在籃子裡放一個新水果或者移除不再需要的水果。

1.2 集合的操作

集合像大型群體一樣,可以進行各種操作。這是4個最常見的例子:

  • 聯集 (Union): 兩個集合的聯集結果包括兩個集合中所有的獨特元素。
  • 交集 (Intersection): 兩個集合的交集結果只包括在兩個集合中都存在的元素。
  • 差集 (Difference): 兩個集合的差集結果包括只出現在第一個集合,而不在第二個集合中的元素。
  • 對稱差 (Symmetric Difference): 兩個集合的對稱差結果包括在其中一個集合中出現,但不在兩者中同時出現的元素。

這是一幅很好的圖幫助你記住操作的本質:

聯集 (Union):

兩個集合A和B的聯集結果包括兩個集合中所有的獨特元素。

交集 (Intersection):

兩個集合的交集結果只包括在兩個集合中都存在的元素。

差集 (Difference):

兩個集合的差集結果包括只出現在第一個集合,而不在第二個集合中的元素。

對稱差 (Symmetric Difference):

兩個集合的對稱差結果包括在其中一個集合中出現,但不在兩者中同時出現的元素。

1.3 集合的特點

集合不僅因其特性而著名,還因為它們上面的特定操作而聞名。

獨特的集合

想像你在收集名人的簽名。你會希望在你的收藏中每個簽名都是獨特的。這意味著如果你已經有一個你喜愛演員的簽名,你不會收集第二個相同的。你的簽名收藏就是一個獨特簽名的集合。

刪除重複項

假設你有一個派對的賓客名單,但不小心把某些人記錄了兩次。為了確保每位客人只被邀請一次,你可以建立一個賓客的集合。這個集合中會自動保留只有獨特的名字,重複的名字將會被刪除。

檢查存在性

想像你在玩一個遊戲,需要收集不同類型的寶藏。每個寶箱可能包含多種寶藏之一。如果你想知道你是否已經找到特定的寶藏,你只需要檢查它是否在你的寶藏集合中。

合併群組

想像你有兩個朋友列表:一個來自學校,另一個來自運動俱樂部。如果你想知道你認識多少獨特的人,你可以把這兩個列表合併成一個集合。這樣你就會有一個沒有重複的所有獨特朋友的列表。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION