集合(Set)#
集合(Set)是 無序 、 不重複 的元素集,類似數學中的集合概念。最常見的用途是去除重複元素,以及進行聯集、交集等集合運算:
| |
新增與刪除#
| |
查詢#
| |
集合的 in 操作比串列快得多,時間複雜度為 O(1)(串列是 O(n)),適合大量查詢場景:
| |
集合運算#
| |
聯集(Union)#
| |
交集(Intersection)#
| |
差集(Difference)#
| |
對稱差集(Symmetric Difference)#
| |
子集合與超集合#
| |
集合推導式#
集合推導式(Set Comprehension)語法與串列推導式幾乎相同,差別只在外側用大括號 {} 而非方括號,結果自動去重且無序。
{運算式 for 變數 in 可迭代物件}
{運算式 for 變數 in 可迭代物件 if 條件}基本形式與自動去重#
| |
加入條件#
| |
與串列推導式的比較#
串列推導式 [...] | 集合推導式 {...} | |
|---|---|---|
| 結果型別 | list | set |
| 保留重複 | ✅ | ❌(自動去重) |
| 保留順序 | ✅ | ❌(無序) |
| 適合用途 | 需要順序或重複時 | 只關心「哪些值存在」時 |
實戰範例#
去除串列重複元素#
| |
找出兩個串列的共同元素#
| |
找出只在其中一個串列的元素#
| |
統計文章中不重複的單字數#
| |
權限管理#
| |