自學Python-07 基本數據類型(六、集合Set)

自學Python-07 基本數據類型(六、集合Set)

 

 

定義

由不重複且不可變對象組成的無序且有限的集合。因此它們不能通過下標來索引。但是它們可被迭代,也可用內置函數 len() 返回集合中的條目數。集合常見的用處是快速成員檢測,去除序列中的重複項,以及進行交、並、差和對稱差等數學運算。

對於集合元素所採用的不可變規則與字典的鍵相同。注意數字類型遵循正常的數字比較規則: 如果兩個數字相等 (例如 1 和 1.0),則同一集合中只能包含其中一個。

總結幾點特徵:

  • 集合是無序的
  • 集合是可變的
  • 集合內元素是確定的(不可變的)
  • 集合內元素是唯一的(不重複的)

基本操作

創建集合

使用{},注意:創建一個空集合必須用 set() 而不是 { },因爲 { } 是用來創建一個空字典

自學Python-07 基本數據類型(六、集合Set)

 

使用set()函數

 

自學Python-07 基本數據類型(六、集合Set)

 

根據定義,集合內元素是唯一的、不重複的,所以可以自動去重

 

自學Python-07 基本數據類型(六、集合Set)

 

集合間運算

自學Python-07 基本數據類型(六、集合Set)

 

 

添加元素

add(x)方法,添加元素。無返回值。如果元素已存在,則不進行任何操作,因爲集合元素是不重複的

 

自學Python-07 基本數據類型(六、集合Set)

 

update(x)方法,可理解爲是批量添加。無返回值。參數是單個元素或者集合,依然遵循元素不重複的原則

 

自學Python-07 基本數據類型(六、集合Set)

 

 

移除元素

remove(x)方法,移除x元素,返回被移除的x元素。有返回值。當要移除的元素x不存在時,會報錯。

 

自學Python-07 基本數據類型(六、集合Set)

 

discard(x)方法,移除x元素,作用同remove方法,但無返回值。區別是當要移除元素x不存在時,不會報錯。

 

自學Python-07 基本數據類型(六、集合Set)

 

 

清空集合

clear()方法,清空集合內所有元素。無返回值。

 

自學Python-07 基本數據類型(六、集合Set)

 

 

方法

copy()

拷貝集合並返回拷貝的集合。有返回值。

關於淺拷貝,參考上節字典的copy()方法中所提

自學Python-07 基本數據類型(六、集合Set)

 

difference(set)

返回集合的差集,有返回值。例如a.difference(b),返回的是去除相同元素的新集合

 

自學Python-07 基本數據類型(六、集合Set)

 

difference_update(set)

移除兩個集合中都存在的元素,無返回值。例如a.difference_update(b),即在a中移除兩個集合中都存在的元素,與difference不同的是,該方法直接修改a

intersection(set1,set2,....)

用於返回兩個或更多集合中都包含的元素,即交集。有返回值。

 

自學Python-07 基本數據類型(六、集合Set)

 

intersection_update() 

用於獲取兩個或更多集合中都重疊的元素,即計算交集。無返回值。

不同於 intersection() 方法,因爲 intersection() 方法是返回一個新的集合,而 intersection_update() 方法是在原始的集合上移除不重疊的元素。

 

自學Python-07 基本數據類型(六、集合Set)

 

isdisjoint() 

用於判斷兩個集合是否包含相同的元素,如果沒有返回 True,否則返回 False。

如圖,判斷y中是否包含x的元素

自學Python-07 基本數據類型(六、集合Set)

 

issubset()

用於判斷集合的所有元素是否都包含在指定集合中,如果是則返回 True,否則返回 False。

 

如圖,判斷y中是否包含x

自學Python-07 基本數據類型(六、集合Set)

 

issuperset()

用於判斷指定集合的所有元素是否都包含在原始的集合中,如果是則返回 True,否則返回 False。

如圖,判斷x中是否包含y

和issubset()好像差不多,只是包含關係不一樣

自學Python-07 基本數據類型(六、集合Set)

 

symmetric_difference()

返回兩個集合中不重複的元素集合,即會移除兩個集合中都存在的元素。有返回值

 

自學Python-07 基本數據類型(六、集合Set)

 

symmetric_difference_update()

移除當前集合中在另外一個指定集合相同的元素,並將另外一個指定集合中不同的元素插入到當前集合中。無返回值。

 

自學Python-07 基本數據類型(六、集合Set)

 

union() 

返回兩個集合的並集,即包含了所有集合的元素,重複的元素只會出現一次。有返回值

 

自學Python-07 基本數據類型(六、集合Set)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章