1. 程式人生 > >python--set方法總結

python--set方法總結

概述

特點:一個無序不重複元素集
功能:關係測試(並,交,差,對稱差)和消除重複元素
特殊: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