集合有兩種型別的,分為可變集合(set)和不可變集合(frozenset)
集合的建立方法,分別由集合的工廠方法set()和frozenset()
>>>s = set ('bookshop')
>>> s
>>>t = frozenset('cheseshop')
>>> t frozenset()
>>> type(s)
>>> type(t)
訪問集合中的值
>>> for i in s:
print(i + ' ',end = ' ')
b h p o k s
>>> for i in t:
print(i + ' ',end = ' ')
c h p o e s
更新集合,只能針對可變集合,不能運用到不可變集合
>>> s.add('aa')
>>> s
>>> s.update('cc')
>>> s
>>> s.remove('aa')
>>> s
>>> s -= set('cc')
>>> s
刪除集合
>>> ss = set('abc')
>>> del ss
>>> ss
traceback (most recent call last):
file "", line 1, in ss
nameerror: name 'ss' is not defined
集合操作型別符
標準操作型別符(適用於可變集合、不可變集合)
>>> 'k' in s
true
>>> 'ss' in s
false
>>> 'c' in t
true
>>> 'k' in t
false
>>> 'ss' not in s
true
>>> 'c' not in t
false
集合等價指的是當且僅當其中乙個集合中的每乙個成員同時也是另乙個集合中的成員。 也可以說每乙個集合必須是另乙個集合的子集,及s<=t和s>=t的值均為真(true)或(s<=t and s>=t 的值為真(true))。 集合的等價/不等價與集合的型別或者集合的成員的順序無關,只與集合的元素有關。
>>> s<=t
false
>>> s>=t
false
>>> u = frozenset(s)
>>> s == u
true
>>> s<=u
true
>>> set('abcd') == set('dcba')
true
>>> set('shop') < set('bookshop')
true
>>> set('bookshop')>=set('shop')
true
「小於」符號(<,<=)用來判斷子集,其中(<)表示嚴格子集,(<=)非嚴格子集
「大於」符號(>,>=)用來判斷超集,其中(>)表示嚴格超集,(>=)非嚴格超集
集合型別操作符(適用於可變集合、不可變集合)
聯合(union)操作和集合的or是等價的。兩個集合聯合成乙個新的集合該集合中的元素至少是其中的乙個集合的元素,即,屬於兩個集合其中之一的元素 聯合(|)還有乙個等價方法:union()
>>> s|t
>>> s.union(t)
兩個集合的交集是乙個新的集合,該集合中的每乙個元素都是兩個集合中的成員,即屬於兩個集合的成員,等價方法:intersection()
>>> s&t
>>> s.intersection(t)
兩個集合(s-t)的差補或者相對補集是指乙個集合,該集合中的元素只屬於集合s,而不屬於集合t,等價方法是:difference()
>>> s-t
>>> s.difference(t)
兩個集合(s-t)的對稱差分是指乙個集合,該集合中的元素只屬於集合s,或者只屬於集合t,不能同時屬於兩個集合 等價方法:symmetric_difference()
>>> s^t
>>> s.symmetric_difference(t)
如果左右兩個運算元的型別相同,既都是可變集合或者不可變集合,則產生的結果型別是相同的, 但是如果左右兩個運算元的型別不相同,則產生的結果型別和左運算元型別相同
>>> type(s&t)
>>> type(t&s)
集合型別操作符(適用於可變集合),後面跟的是set()方法生成的新的集合
>>> s
>>> s |= set('hji')
>>> s
>>> s.update('hji')
>>> s
>>> s
>>> s &= set('bookshop')
>>> s
>>> s.intersection_update('shop')
>>> s
>>> s
>>> s -= set('hji')
>>> s
>>> s.difference_update('book')
>>> s
>>> s
>>> s ^= set('bookpage')
>>> s
>>> s.symmetric_difference_update('shop')
>>> s
內建函式
方法(適用於所有集合的方法)
>>> s.issubset(t)
false
>>> ss = set('agp')
>>> ss.issubset(s)
true
>>> s.issuperset(t)
false
>>> ss.issuperset(s)
false
>>> s.issuperset(ss)
true
>>> s
>>> s.copy()
>>> sss = s.copy()
>>> sss
方法(適用於可變集合的方法)
>>> s = set('bookshop')
>>> s
>>> s.discard('s')
>>> s
>>> s
>>> s.pop()
'o'
>>> s
>>> s.clear()
>>> s
set()
Python 中的集合(set)
set 擁有類似 dict 的特點 可以用 花括號來定義 不推薦使用 其中的元素沒有序列,也就是是非序列型別的資料 set 中的元素不可重複,類似 dict 的鍵.set 也有一點 list 的特點 有一種集合可以原處修改.一 建立 set s1 set zhrq95 s1 set z h r q ...
Python中的集合 Set
在python中,集合 set 是乙個無序 不重複的序列,它不支援索引。一般在建立集合時,分為建立空集合和非空集合,其建立方式如下 建立空集合 set1 set 建立同一資料型別元素的集合 set2 建立不同資料型別元素的集合 set3 從上面可以看到,我們只需要把集合的所有元素放在大括號 裡面,每...
python基礎知識 set集合
set集合是乙個無序並且不重複的元素集合。name set hello word name add 作用 向set集合裡面新增新的元素 name set hello word name name.add python name clear 作用 清空set集合中的所有元素 name name.cle...