python中集合型別及操作
阿新 • • 發佈:2021-10-27
python中集合型別及操作
特點:集合元素之間無序,每個元素唯一,不存在相同元素,集合元素不可更改,不能是可變資料型別(所以列表就不能是集合的元素)
集合型別的定義
集合用大括號{}表示,元素間用逗號分隔
建立集合型別用{}或set()
建立空集合型別,必須使用set(),因為{}是用來建立空字典的
>>>A = {"python",123,("python",123)} {123, 'python', ('python',123)} >>>B = set("pypy123") # set()輸入的物件是字串 {'1', 'p', '2', '3', 'y'} # 集合對我們來說是無序的,它打印出來的順序和定義是不一樣的 # 集合對計算機來說是有序的,它每次打印出來的順序是一定的
集合操作符
操作符及應用 | |
---|---|
S | T | 並,返回一個新集合,包括在集合S和T中的所有元素 |
S-T | 差,返回一個新集合,包括在集合S但不在T中的元素 |
S&T | 補,返回一個新集合,包括集合S和T中的非相同元素 |
S<=T或S<T | 返回True/False,判斷S和T的子集關係 |
S>=T或S>T | 返回True/False,判斷S和T的包含關係 |
集合處理方法
操作函式或方法 | |
---|---|
S.add(x) | 如果x不在集合S中,將x增加到S |
S.discard(x) | 移除S中元素x,如果x不在集合S中,不報錯 |
S.remove(x) | 移除S中元素x,如果x不在集合S中,產生KeyErrror異常 |
S.clear() | 移除S中所有元素 |
S.pop() | 隨機返回S的一個元素,更新S,若S為空產生KeyError異常 |
S.copy() | 返回集合S的一個副本 |
len(S) | 返回集合S的元素個數 |
x in S | 判斷S中元素x,x在集合S中,返回True,否則返回False |
x not in S | 判斷S中元素x,x不在集合S中,返回True |
set(x) | 將其他型別x轉變為集合型別 |
集合型別應用場景
1.包含關係比較
>>>"P" in {"p", "y", 123} True >>>{"p", "y"} >= {"p", "y", 123} False
2.資料去重(利用集合型別所用元素無重複)
>>>ls = ["p", "p", "y", "y", 123]
>>>s = list(set(ls))
['p', 'y', 123]