1. 程式人生 > >python學習(30)_集合_2

python學習(30)_集合_2

對稱 返回 ... 推導 lse 判斷 元素 inter cti

遍歷集合 In 遍歷 >>> s1 {4, ‘a‘, ‘x‘, ‘c‘, ‘b‘} >>> for value in s1: ... print(value) ... 4 a x c b 使用enumerate進行遍歷 >>> for index,value in enumerate(s1): ... print(index,value) ... 0 4 1 a 2 x 3 c 4 b 集合轉換成字符串 >>> s1 {4, ‘a‘, ‘x‘, ‘c‘, ‘b‘} >>> s = "".join({str(v) for v in s1}) >>> s ‘axcb4‘ >>> set1 = {"a","b","c"} >>> "".join(set1) ‘cba‘ 集合轉換成元組 >>> s1 {4, ‘a‘, ‘x‘, ‘c‘, ‘b‘} >>> t = tuple(s1) >>> t (4, ‘a‘, ‘x‘, ‘c‘, ‘b‘) 集合轉列表 >>> lst = list(s1) >>> lst [4, ‘a‘, ‘x‘, ‘c‘, ‘b‘] set.clear()清空集合 >>> s1 {4, ‘a‘, ‘x‘, ‘c‘, ‘b‘} >>> s1.clear() >>> s1 set() set.copy()復制集合 >>> s1 = set("abcd") >>> s1 {‘c‘, ‘d‘, ‘b‘, ‘a‘} >>> s2 = s1.copy() >>> s2 {‘c‘, ‘d‘, ‘b‘, ‘a‘} len(set)求集合長度 >>> print (len(s1)) 4 交集 利用 & 符號 >>> s1 = {1,2,3,4} >>> s2 = {3,4,5,6} >>> s1&s2 {3, 4} set1.intersection(set2) >>> s1.intersection(s2) {3, 4} set1.intersection_update(set2) 交集更新操作 返回兩個集合的交集,set1中其他元素被刪除 >>> s1 {1, 2, 3, 4} >>> s2 {3, 4, 5, 6} >>> s1.intersection_update(s2) >>> s1 {3, 4} 並集 利用 | 符號 >>> s1 = {1,2,3,4} >>> s2 = {3,4,5,6} >>> s1|s2 {1, 2, 3, 4, 5, 6} set1.union(set2) >>> s1.union(s2) {1, 2, 3, 4, 5, 6} set1.update(set2) 並集更新操作,set2中的元素被添加到set1 >>> s1.update(s2) >>> s1 {1, 2, 3, 4, 5, 6} 差集 利用 - 減號 >>> s1 = {1,2,3,4} >>> s2 = {3,4,5,6} >>> s1-s2 {1, 2} set1.difference(set2) >>> s1.difference(s2) {1, 2} Set1.difference_update(set2) 差集更新操作,返回set1和set2的差集,set1中的其他不在set2中的元素被刪除 >>> s1 = {1,2,3,4} >>> s2 = {3,4,5,6} >>> s1.difference_update(s2) >>> s1 {1, 2} set1.symmetric_difference(set2)對稱差集 兩個集合中所有不屬於兩個集合交集的元素 對稱差集:集合A與集合B的對稱差集定義為集合A與集合B中所有不屬於A∩B的元素的集合,記為A△B,也就是說A△B={x|x∈A∪B,x?A∩B},即A△B=(A∪B)—(A∩B).也就是A△B=(A—B)∪(B—A) >>> s1.symmetric_difference(s2) {1, 2, 5, 6} set1.symmetric_difference_update(set2)對稱差集更新操作 Set1返回兩個集合的對稱差集 >>> s1.symmetric_difference_update(s2) >>> s1 {1, 2, 5, 6} 判斷集合的關系 利用 > 、>=、 、< <= 集合可以使用大於(>)、小於(<)、大於等於(>=)、小於等於(<=)、等於(==)、不等於(!=)來判斷某個集合是否完全包含於另一個集合,也可以使用子父集判斷函數。 > 是左邊集合是否完全包含右邊集合 >>> a = {"a","b","c"} >>> a {‘c‘, ‘b‘, ‘a‘} >>> b = {"a","b"} >>> b {‘b‘, ‘a‘} >>> a > b True >>> c = {"a","d"} >>> a > c False set1.issuperset(set2) 判斷set1是否是set2的超集 >>> a {1, 2, 3, 4, 5, 6, 7} >>> b {1, 2, 3, 4} >>> a.issuperset(b) True set1.issubset(set2) 判斷set1是否是set2的子集 >>> a {1, 2, 3, 4, 5, 6, 7} >>> b {1, 2, 3, 4} >>> b.issubset(a) True set1.isdisjoint(set2)是否不存在交集 判斷兩個集合是否不存在交集,如果兩個集合沒有交集,返回True,如果有交集返回False >>> a = {1,3} >>> b = {4,6} >>> a.isdisjoint(b) True >>> s1 {1, 2, 5, 6} >>> s2 {3, 4, 5, 6} >>> s1.isdisjoint(s2) False 集合推導式 基本集合推倒式 >>> a = {1,2,3,4} >>> {i*2 for i in a} {8, 2, 4, 6} >>> {i*2 for i in range(5)} {0, 2, 4, 6, 8} 帶if條件的集合推導式 >>> {i**2 for i in a if i%2==0} {16, 4} 多層循環集合推導式 >>> {x+y for x in a for y in b} {‘bx‘, ‘ay‘, ‘cx‘, ‘ax‘, ‘by‘, ‘bz‘, ‘cz‘, ‘az‘, ‘cy‘}

python學習(30)_集合_2