Python中集合(set)的基本操作以及一些常見的用法
阿新 • • 發佈:2017-07-05
python set 集合 集合的一些常見用法
Python除了List、Tuple、Dict等常用數據類型外,還有一種數據類型叫做集合(set),集合的最大特點是:集合裏邊的元素是不可重復的並且集合內的元素還是無序的,所以一般情況下集合常用的兩個場景是:1.去重(如:列表去重);2.關系測試(如:取交集、取並集、取差集等)
1)集合包含一組無序的對象,可以使用set()函數來像下邊的方式一樣來創建集合
#!/usr/bin/env python # -*-coding:UTF-8 -*- #創建一個數值集合 set1 = set([1,2,3,4]) #創建一個字符集合 註意:從輸出結果中我們會看到l只出現了一次 set2 = set("HelloWorld!") print(‘set1 %s‘ % set1) print(‘set2 %s‘ % set2) ‘‘‘運行結果 set1 {1, 2, 3, 4} set2 {‘d‘, ‘o‘, ‘e‘, ‘H‘, ‘l‘, ‘W‘, ‘r‘, ‘!‘} ‘‘‘
2)去重,即可能在一些特殊的場景需要用到,實現去除掉列表中的重復元素
#!/usr/bin/env python # -*-coding:UTF-8 -*- #列表去重比較簡單 list1 = [3,3,3,4,5,3] set1 = set(list1) print("list1去重後的set集合:",set1) #將如中後的集合在轉化成一個新列表 new_list = [i for i in set1] print("list1去重後的list列表:",new_list) ‘‘‘運行結果 list1去重後的set集合: {3, 4, 5} list1去重後的list列表: [3, 4, 5] ‘‘‘
3)關系測試,即一些集合的最基本操作,如集合取交集、取並集、取差集、判斷一個集合是不是另一個集合的子集或者父集等。
#!/usr/bin/env python # -*-coding:UTF-8 -*- set1 = set([1,2,3,4,5]) set2 = set([3,4,5,6,7]) #取交集 set3 = set1.intersection(set2) # set3 = set1 & ste2 #取交集,與intersection()效果相同 print("set1和set2的交集為:",set3) #取並集 set4 = set1.union(set2) #set4 = set1 | set2 #取並集,與union()效果相同 print("set1和set2的交集為:",set4) #取差集 這個地方要稍稍註意一下,防止進坑 set5 = set1.difference(set2) #set5 = set1 - set2 #取差集 ,與difference()效果相同 print("set1與set2的差集為:",set5) set6 = set2.difference(set1) print("set2與set1的差集為:",set6) #對稱差集 -----即去掉兩個集合的共同的部分 set7 = set1.symmetric_difference(set2) #set7 = set1 ^ set2 #對稱差集, 與symmetric_difference()效果相同 print("去掉兩個集合的共同的部分:",set7) #判斷是否是set1是否是set2的子集 flag1 = set1.issubset(set2) print("print(判斷是否是set1是否是set2的子集):",flag1) #判斷是否是set1是否是set2的父集 flag2 = set1.issuperset(set2) print("判斷是否是set1是否是set2的父集:",flag2) ‘‘‘運行結果如下: set1和set2的交集為: {3, 4, 5} set1和set2的交集為: {1, 2, 3, 4, 5, 6, 7} set1與set2的差集為: {1, 2} set2與set1的差集為: {6, 7} 去掉兩個集合的共同的部分: {1, 2, 6, 7} print(判斷是否是set1是否是set2的子集): False 判斷是否是set1是否是set2的父集: False ‘‘‘
4)集合的一些其它基本操作
#!/usr/bin/env python # -*-coding:UTF-8 -*- #輸出集合中的元素 #註意集合與列表和元組不同,集合是無序的,所以無法通過數字進行索引獲取某一個元素的值 set1 = set([1,2,3,4]) for i in set1: print (i) #向集合中添加一個元素 set1.add(5) print("向集合中添加一個元素5後:",set1) #刪除一個元素 set1.remove(1) print("從集合中刪除元素1後:",set1) #計算集合的長度 l = len(set1) print("集合的長度為:",l) #判斷某個元素是否在集合內 flag1 = 2 in set1 print("判斷元素2是否在集合內:",flag1) #斷某個元素是否不在集合內 flag2 = 3 not in set1 print("判斷元素3是否不在集合內:",flag2) #對集合進行一次淺復制 set2 = set1.copy() print("對集合進行一次淺復制:",set2) ‘‘‘運行結果如下: 1 2 3 4 向集合中添加一個元素5後: {1, 2, 3, 4, 5} 從集合中刪除元素1後: {2, 3, 4, 5} 集合的長度為: 4 判斷元素2是否在集合內: True 判斷元素3是否不在集合內: False 對集合進行一次淺復制: {2, 3, 4, 5} ‘‘‘
以上是集合(set)的一些比較常用操作的示例,對於集合的一些其它操作,這裏就不在一一舉例說明了。
Python中集合(set)的基本操作以及一些常見的用法