1. 程式人生 > 實用技巧 >(16)-Python3之--集合(set)操作

(16)-Python3之--集合(set)操作

1.定義

集合的關鍵字:set

集合主要作用:

  • 去重,把一個列表變成集合,就自動去重了
  • 關係測試,測試兩組資料之前的交集、差集、並集等關係

集合用大括號{}表示,元素間用逗號分隔。

建立集合型別用{}或set(),建立空集合,必須使用set()。

集合元素之間無序,每個元素唯一,不存在相同元素。

在python中,集合元素不可更改,不能是可變資料型別。

  -集合中的每個元素,一旦放入集合中,不可修改。

  -可變資料型別元素不可放入集合內。

2.集合建立方式

# 使用{}建立集合
A = {"python",123,("python",123)}
print(A)

# 使用set()建立集合
# 注:set函式建立的集合,會將每個字元分開分別建立一個元素,集合中不存在相同集合,所以只保留一個相同元素,集合沒有順序,所以順序是隨機的 B = set("pypy123") print(B) 結果: {123, 'python', ('python', 123)} {'3', '1', 'p', 'y', '2'}

3.集合操作符

a = t | s          # t 和 s的並集  
b = t & s # t 和 s的交集
c = t – s # 求差集(項在t中,但不在s中)
d = t ^ s # 對稱差集(項在t或s中,但不會同時出現在二者中)

效果也如下圖所示:

4.增強型集合操作符

Python還提供了關係操作符外,python還提供了>  =  >=  <=  <
S<=T或S<T 返回True/False,判斷S和T的子集關係
S>=T或S>T 返回True/False,判斷S和T和包含關係

增強操作符如圖所示:
增強操作符:使用賦值=符號,更新集合的元素

注:如果不使用增強操作符,兩個集合進行運算,會生成一個新的集合。

5.集合處理方法

如圖所示:

注:discard和remove的區別在於是否產生異常 如果出現異常,可以使用之前學過的try異常處理捕捉異常,所以這裡很關鍵。

除此之外:
S.clear() 移除S集合中的所有元素
S.pop() 隨機返回集合S中的一個元素,更新S,若S為空產生keyerror異常
除此之外還有:

# 基本操作:
s = set([3,5,9,10])  # 建立一個數值集合
t = set("Hello")  # 建立一個唯一字元的集合
t.add('x')  # 新增一項
s.update([10, 37, 42])  # 在s中新增多項

# 使用remove()
# 可以刪除一項:
t.remove('H')

# set的長度
len(s)

# 測試 x 是否是 s 的成員
x in s

# 測試 x 是否不是 s 的成員
x not in s

# 測試是否 s 中的每一個元素都在 t 中
s.issubset(t)
s <= t

# 測試是否 t 中的每一個元素都在 s 中
s.issuperset(t)
s >= t

# 返回一個新的 set 包含 s 和 t 中的每一個元素
s.union(t)
s | t

# 返回一個新的 set 包含 s 和 t 中的公共元素
s.intersection(t)
s & t

# 返回一個新的 set 包含 s 中有但是 t 中沒有的元素
s.difference(t)
s - t

# 返回一個新的 set 包含 s 和 t 中不重複的元素
s.symmetric_difference(t)
s ^ t

# 返回 set “s”的一個淺複製
s.copy()