python中set和frozenset方法和區別
阿新 • • 發佈:2019-01-25
先簡單說一下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方法。