除了使用remove()方法刪除元素以外,還可以使用discard()方法刪除元素,并且,和remove()不同的是,當元素不存在時,使用discard()并不會引發錯誤,所以使用discard()是更加高效的一個方法。
name_set = set(['Jenny', 'Ellena', 'Alice', 'Candy', 'David', 'Hally', 'Bob', 'Isen', 'Karl']) name_set.discard('Jenny') print(name_set) # ==> set(['Ellena', 'Alice', 'Candy', 'David', 'Hally', 'Bob', 'Isen', 'Karl']) name_set.discard('Jenny') print(name_set) # ==> set(['Ellena', 'Alice', 'Candy', 'David', 'Hally', 'Bob', 'Isen', 'Karl']
和dict一樣,set也提供了clear()方法,可以快速清除set中的所有元素。
name_set = set(['Jenny', 'Ellena', 'Alice', 'Candy', 'David', 'Hally', 'Bob', 'Isen', 'Karl']) print(name_set) # ==> set(['Jenny', 'Ellena', 'Alice', 'Candy', 'David', 'Hally', 'Bob', 'Isen', 'Karl']) name_set.clear() print(name_set) # ==> set([])
set提供方法判斷兩個set之間的關系,比如兩個集合set,判斷其中一個set是否為另外一個set的子集或者超集。
s1 = set([1, 2, 3, 4, 5]) s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9]) # 判斷s1是否為s2的子集 s1.issubset(s2) # ==> True # 判斷s2是否為s1的超集 s2.issuperset(s1) # ==> True
有時候需要判斷兩個集合是否有重合的地方,如果使用傳統的方法,需要使用for循環一個一個的去判斷,非常麻煩,set提供isdisjoint()
方法,可以快速判斷兩個集合是否有重合,如果有重合,返回False,否則返回True。
s1 = set([1, 2, 3, 4, 5]) s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9]) s1.isdisjoint(s2) # ==> False,因為有重復元素1、2、3、4、5
已知兩個集合s1、s2,請判斷兩個集合是否有重合,如果有,請把重合的元素打印出來。
s1 = set([1, 2, 3, 4, 5]) s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
參考答案:
s1 = set([1, 2, 3, 4, 6, 8, 10]) s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9]) flag = s1.isdisjoint(s2) if not flag: for item in s1: if item not in s2: continue print(item)
請驗證,完成請求
由于請求次數過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報