python--set方法總結
阿新 • • 發佈:2019-02-18
概述
特點:一個無序不重複元素集
功能:關係測試(並,交,差,對稱差)和消除重複元素
特殊:sets不支援indexing, slicing, 或其它類序列(sequence-like)的操作。
注:以下運算中,t與s都set集合,x為集合中的元素
構造:
set() #空集合定義
Set1 = {"1", "2"}
set2 = set(list1)
Set3 =set(str) #例如:set('spam') ==set(['a', 'p', 's', 'm'])=={'a', 'p', 's', 'm'} str-->字元list-->set
t=s #t為集合s的一個引用
t=s.copy() #t為集合s的一個淺複製
增加:
t.add(x) # 新增一項
s.update(t) # 在s中新增多項
刪除:
s.remove(x) #刪除集合中的元素 x,返回集合 , 如果不存在則引發 KeyError
s.discard(x) #刪除集合中的元素 x,返回集合,如果不存在返回集合本身
s.pop() #刪除集合中的任一不確定的元素, 返回集合,如果為空則引發 KeyError
s.clear() #清空集合
檢視:
len(s) #set 的長度
hash(s) #返回 s 的 hash 值
邏輯運算:
a = t | s # t 和 s的並集 s.union(t)
b = t & s # t 和 s的交集 s.intersection(t) )
c = t – s # 求差集(項在t中,但不在s中) s.difference(t)
d = t ^ s # 對稱差集(項在t或s中,但不會同時出現在二者中) s.symmetric_difference(t)
s|=t # 將t新增到s中 s.update(t)
s <= t #s是t的子集 返回bool s.issubset(t)
s >= t #s是t的父集 返回bool s.issuperset(t)
s==t #s與t互為子集
s!=t #集合s與t不相等
x in s # x 在集合 s 中 返回bool
x not in s # x 不在集合 s 中 返回bool