python之set
阿新 • • 發佈:2017-09-28
情況 所有 並集 差集 pop 方式 lar trace 必須
一、set集合介紹
set集合,是一個無序的,且不重復的元素集合
定義方式使用"{}",也可以使用set(iterable)內置函數定義,但iterable參數只能是可叠代對象的對象
>>> set1 = {1,2,3,4,1,3} #定義集合,默認會將重復的去掉 >>> set1 {1, 2, 3, 4} >>> aa = ‘abcde‘ >>> set2 = set(aa) #使用set函數定義集合 >>> set2 {‘a‘, ‘b‘, ‘d‘, ‘c‘, ‘e‘}>>> set3 = set(‘python‘) >>> set3 {‘y‘, ‘p‘, ‘o‘, ‘h‘, ‘n‘, ‘t‘} >>> set2 = set(range(5)) #如果使用數字必須使用叠代序列 >>> set2 {0, 1, 2, 3, 4}
二、集合的方法
1、s.add()添加元素
>>> set2 {1, 2, 3, 4, 5} >>> set2.add(6) >>> set2 {1, 2, 3, 4, 5, 6}>>> set2.add(‘addr‘) >>> set2 {1, 2, 3, 4, 5, 6, ‘addr‘} 2、s.clear()情況所有元素 >>> set2 {1, 2, 3, 4, 5, 6, ‘addr‘} >>> set2.clear() >>> set2 set()
3、s.copy()淺拷貝
>>> set1 {1, 2, 3, 4, 6, ‘addr‘} >>> set3=set1.copy() >>> set3 {1, 2, 3, 4, 6, ‘addr‘}
4、s.difference(b)
返回兩個集合差集中s的元素
>>> set1 = {1,2,3,4} >>> set2 = {3,4,5,6} >>> set1.difference(set2) #用set2比較set1時,返回set1和set2交集中set1剩余的元素 {1, 2} >>> set2.difference(set1) #理解同上,返回自身集合中對方集合沒有的新集合 {5, 6}
5、s.difference_update(b)
從s集合中移除與b集合交集的元素,並更新到s集合
>>> set1 = {1,2,3,4} >>> set2 = {3,4,5,6} >>> set1.difference_update(set2) >>> set1 {1, 2} >>> set2.difference_update(set1) #沒有交集元素,所以不變 >>> set2 {3, 4, 5, 6}
6、s.discard(obj)
刪除指定元素,如不存在不會報錯
>>> set2 {3, 4, 5, 6} >>> set2.discard(6) >>> set2 {3, 4, 5} >>> set2.discard(7) #元素不存在,沒有報錯 >>> set2 {3, 4, 5}
7、s.intersection(b)
返回兩個或多個集合的交集,並返回
>>> set1 = {1,2,3,4} >>> set2 = {3,4,5,6} >>> set1.intersection(set2) #返回交集值 {3, 4} >>> set3 = {3,6,8,9} >>> set1.intersection(set2,set3) #必須三個set都存在才返回 {3}
8、s.intersection_update(b)
根據當前s與比較b的交集值更新到s集合中
>>> set1 = {1,2,3,4,5,6} >>> set2 = {3,4,5,7,8,9} >>> set1.intersection_update(set2) #取交集值更新到自身set >>> set1 {3, 4, 5} >>> set2 {3, 4, 5, 7, 8, 9}
9、s.isdisjoint(b)
如果兩個集合沒有交集返回True否則返回False
>>> set1 = {1,2,3,4,5} >>> set2 = {4,5,6,7,8} >>> set1.isdisjoint(set2) False >>> set3 = {22,33} >>> set1.isdisjoint(set3) True
10、s.issubset(b)
s集合元素是否被b集合包含,是則返回True否則返回False
>>> s1 = {1,2} >>> s2 = {1,2,3,4} >>> s3 = {11,22} >>> s1.issubset(s2) True >>> s1.issubset(s3) False
11、s.issuperset(b)
判斷s集合元素是否包含了所以b的集合元素,是返回True否則返回False
>>> s1 = {1,2} >>> s2 = {1,2,3,4} >>> s2.issuperset(s1) True >>> s1.issuperset(s2) False
12、s.pop()
集合默認排序後,隨機刪除一個元素,並返回該元素,默認刪除第一個元素
>>> s2 = {‘name‘,‘age‘,‘salary‘,‘shool‘} >>> s2 {‘salary‘, ‘name‘, ‘shool‘, ‘age‘} >>> s2.pop() ‘salary‘ >>> s2.pop() ‘name‘ >>> s2.pop() ‘shool‘
13、s.remove(obj)
移除集合中的指定值,和discard一樣,只是remove在值不存在時會報錯。
>>> s1 = {1,2,3,4} >>> s1.remove(2) >>> s1 {1, 3, 4} >>> s1.remove(5) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 5
14、s.symmetric_difference()
返回兩個集合的差集
>>> s1 = {1,2,3,4} >>> s2 = {3,4,5,6} >>> s1.symmetric_difference(s2) #返回兩個集合不交集的元素 {1, 2, 5, 6} >>> s2.symmetric_difference(s1) {1, 2, 5, 6}
15、s.symmetric_difference_update(b)
將兩個集合不交集的元素返回給s
>>> s1 = {1,2,3,4} >>> s2 = {3,4,5,6} >>> s1.symmetric_difference_update(s2) >>> s1 {1, 2, 5, 6}
16、s.union(b)
返回兩個集合的並集
>>> s1 = {1,2,3,4} >>> s2 = {3,4,5,6} >>> s1.union(s2) {1, 2, 3, 4, 5, 6}
17、s.update(b)
以集合b擴展s集合
>>> s1 = {1,2,3} >>> s2 = {4,5,6} >>> s1.update(s2) >>> s1 {1, 2, 3, 4, 5, 6}
python之set