1. 程式人生 > >python中set和frozenset方法和區別

python中set和frozenset方法和區別

先簡單說一下set

t.add('x')            # 新增一項
s.update([10,37,42])  # 在s中新增多項
t.remove('H') # 刪除一項
len(s)  # set 的長度
x in s # 測試 x 是否是 s 的成員 
x not in s   # 測試 x 是否不是 s 的成員 
s.issubset(t)  
s <= t  # 測試是否 s 中的每一個元素都在 t 中 
s.issuperset(t)  
s >= t  # 測試是否 t 中的每一個元素都在 s 中 
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 和 t 中不重複的元素 s.copy() # 返回 set “s”的一個淺複製

set(可變集合)與frozenset(不可變集合)的區別:
set無序排序且不重複,是可變的,有add(),remove()等方法。既然是可變的,所以它不存在雜湊值。基本功能包括關係測試和消除重複元素. 集合物件還支援union(聯合), intersection(交集), difference(差集)和sysmmetric difference(對稱差集)等數學運算.
sets 支援 x in set, len(set),和 for x in set。作為一個無序的集合,sets不記錄元素位置或者插入點。因此,sets不支援 indexing, 或其它類序列的操作。
frozenset是凍結的集合,它是不可變的,存在雜湊值,好處是它可以作為字典的key,也可以作為其它集合的元素。缺點是一旦建立便不能更改,沒有add,remove方法。