1. 程式人生 > 其它 >python中集合型別及操作

python中集合型別及操作

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]