集合:
數學上,把set稱作由不同的元素組成的集合,集合(set)的成員通常被稱做集合元素。
集合對象是一組無序排列的可哈希的值。
集合有兩種類型:
1、可變集合set
2、不可變集合frozenset
特點:
1、值不可以重複
創建可變集合set
>>> s1 = set('hello')
>>> s1
{'h', 'l', 'o', 'e'} #值不可以重複,所以兩個L合併成一個L
創建不可變集合frozenset
>>> s2 = frozenset('hello')
>>> s2
frozenset({'h', 'l', 'o', 'e'})
創建整體集合:
>>> s3 = set(['hello', 'world'])
>>> s3
{'hello', 'world'}
集合類型操作符:
集合支持用in和not in操作符檢查chengy
能夠通過len()檢查集合大小
能夠使用for迭代集合成員
不能取切邊,沒有鍵
>>> s3 = set(['hello', 'world'])
>>> s3
{'hello', 'world'}
>>> len(s3)
2
>>> for i in s3: #迭代集合成員
... print(i)
...
hello
world
| :聯合,取並集 #兩個集合合併成一個,相同集合元素合併,可以用函數union表示
>>> a | b
{'e', 'b', 'c', 'a', 'd'}
>>> a.union(b)
{'e', 'b', 'c', 'a', 'd'}
& :交集 #兩個集合中都有的元素‘C’,可以用函數intersection表示
>>> a = set('abc')
>>> b = set('cde')
>>> a
{'b', 'c', 'a'}
>>> b
{'e', 'c', 'd'}
>>> a & b
{'c'}
>>> a.intersection(b)
{'c'}
- :差補 #取差異, 可使用函數difference表示。
>>> a - b #b集合中沒有a集合當中的那些元素,
{'b', 'a'}
>>> b - a #a集合中沒有b集合當中的參數是那些
{'e', 'd'}
>>> a.difference(b)
{'b', 'a'}
集合內建方法:
添加成員:
set.add() #當成一個整體進行添加
>>> a.add('new')
>>> a
{'b', 'new', 'c', 'a'}
批量添加成員:
set.update() #拆分進行添加,添加多個可以使用s3的方式
>>> a.update('new')
>>> a
{'w', 'e', 'b', 'n', 'new', 'c', 'a'}
>>> s3 = set(['hello', 'world'])
>>> s3
{'hello', 'world'}
刪除成員:
set.remove() #由於集合是無序的,無法取下標和key,只能指定刪除項
>>> a.remove('n')
>>> a
{'w', 'e', 'b', 'new', 'c', 'a'}
子集、超集:
a集合中包含b集合的元素,所以a集合是b集合的超集,b集合是a集合的子集
被包含的是子集,包含別人的是超集
>>> a = set('abcde')
>> b = set('bcd')
>>> a
{'e', 'b', 'c', 'a', 'd'}
>>> b
{'b', 'c', 'd'}
X.issuperset(XX) #判斷a集合是否爲b集合的超集
>>> a.issuperset(b)
True
>>> b.issubset(a) #判斷b集合是否爲a集合的子集
True
集合本身是自己的超集和子集
python3 集合
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.