#!/usr/bin/env python # -*- coding:utf-8 -*- #Author:sking #python3集合操作方法詳解 python3集合操作大全 #集合是無(wú)序的 #創(chuàng)建集合 a = {1,2,3} #正確 b = set([1,2,3]) #正確 c = set((1,2,3)) #正確 d = set({1:3,2:4}) #結(jié)果{1, 2} 只能取字典的key #add添加集合中的元素(添加一項(xiàng)) a = set([1,2,3]) a.add(4) print(a) #{1, 2, 3, 4} #update添加集合中的元素(添加多項(xiàng)) b = set([1,2,3]) b.update([4,5,6]) print(b) #{1, 2, 3, 4, 5, 6} #remove刪除集合中的元素(刪除一項(xiàng)) 如果不存在就會(huì)報(bào)錯(cuò) a = set([1,2,3]) a.remove(2) print(a) #{1, 3} #discard刪除集合中的元素(刪除一項(xiàng))如果不存在不會(huì)報(bào)錯(cuò) n = set([2,3,4]) n.discard(3) print(n) #{2, 4} #pop(隨機(jī)移除一個(gè)元素) n = set([2,3,4,5]) n1 = n.pop() print(n,n1) #{3, 4, 5} 2 #clear(清空所有元素) name = set(['Tom','Lucy','Ben']) name.clear() print(name) #輸出:set() #len計(jì)算集合長(zhǎng)度 a = set([1,2,3]) b = set(['aaa', 'bbb', 'ccc']) print(len(a), len(b)) #3 3 #in判斷某一個(gè)元素是不是在集合中 a = set([1,2,3]) print(1 in a) #True #copy淺復(fù)制 a = set([1,2,3]) b = a.copy() print(b) #{1, 2, 3} print('+_+_+_+_+_+_++_+_+_+_+_+_+_') a = [1,2,3,1,4,5,3,6] b = set(a) #去除列表a中重復(fù)的元素 print(b) #{1, 2, 3, 4, 5, 6} print(type(b)) #<class 'set'> c = set([1,2,3,4,5,6]) d = set([1,2,3,8,9,0]) #求交集 #方法1 print(c.intersection(d)) #{1, 2, 3} #方法2 print(c & d) #{1, 2, 3} #求并集(就是都放在一起,,相同的僅保留一個(gè)) #方法1 print(c.union(d)) #{0, 1, 2, 3, 4, 5, 6, 8, 9} #方法2 print(c | d) #{0, 1, 2, 3, 4, 5, 6, 8, 9} #求差集(就是求1里面有而2里面沒(méi)有的,也就是去掉1里面和2相同的元素) #方法1 print(c.difference(d)) #{4, 5, 6} #方法2 print(c - d) #{4, 5, 6} #對(duì)稱(chēng)差集(就是把兩個(gè)集合中不相同的元素提取出來(lái)) c = set([1,2,3,4,5,6]) d = set([1,2,3,8,9,0]) #方法1 print(c.symmetric_difference(d)) #{0, 4, 5, 6, 8, 9} #方法2 print(c ^ d) #{0, 4, 5, 6, 8, 9} #判斷子集和父集 a = set([1,2,3]) b = set([1,2,3,4,5,6]) #判斷a是否是b的子集 print(a.issubset(b)) #True #判斷b是否是a的父集 print(b.issuperset(a)) #True #判斷兩個(gè)集合是否有交集,沒(méi)有交集就返回True,有交集就返回False a = set([1,2,3]) b = set([4,5,6]) c = set([1,4,5]) print(a.isdisjoint(b)) #True print(a.isdisjoint(c)) #False """ add(增加元素) name = set(['Tom','Lucy','Ben']) name.add('Juny')print(name) #輸出:{'Lucy', 'Juny', 'Ben', 'Tom'} clear(清空所有元素) name = set(['Tom','Lucy','Ben']) name.clear() print(name) #輸出:set() copy(拷貝set集合) name = set(['Tom','Lucy','Ben']) new_name = name.copy()print(new_name) #輸出:{'Tom', 'Lucy', 'Ben'} difference(返回兩個(gè)或多個(gè)集合中不同的元素,,并生成新的集合) A = set([2,3,4,5]) B = set([3,4]) C = set([2]) n = n1.difference(n2,n3) print(n) #輸出:{5}#返回A集合里面,在B和C集合中沒(méi)有的元素,,并生成新的集合 difference_update(刪除A集合里面,在B集合中存在的元素,。) A = set([2,3,4,5]) B = set([4,5]) A.difference_update(B) print(A) #輸出:{2, 3} discard(移除元素) n = set([2,3,4]) n.discard(3) print(n) #輸出:{2, 4} intersection(取交集,,并生成新的集合) n1 = set([2,3,4,5]) n2 = set([4,5,6,7]) n = n1.intersection(n2) print(n) #輸出:{4, 5} intersection_update(取交集,修改原來(lái)的集合) n1 = set([2,3,4,5]) n2 = set([4,5,6,7]) n1.intersection_update(n2) print(n1) #輸出:{4, 5} isdisjoint(判斷交集,,是返回False,,否返回True) n1 = set([2,3,4,5]) n2 = set([4,5,6,7]) print(n1.isdisjoint(n2)) #輸出:False issubset(判斷子集) A = set([2,3]) B = set([2,3,4,5]) print(A.issubset(B)) #輸出:True#A是B的子集 issuperset(判斷父集) A = set([2,3]) B = set([2,3,4,5]) print(B.issuperset(A)) # 輸出:True#B是A的父集 pop(隨機(jī)移除一個(gè)元素) n = set([2,3,4,5]) n1 = n.pop() print(n,n1) # 輸出:{3, 4, 5} 2 remove(移除指定元素) n = set([2,3,4,5]) n.remove(2) print(n) # 輸出:{3, 4, 5} symmetric_difference(取交集,并生成新的集合) A = set([2,3,4,5]) B = set([4,5,6,7]) print(A.symmetric_difference(B)) # 輸出:{2, 3, 6, 7} symmetric_difference_update(取交集,,改變?cè)瓉?lái)的集合) A = set([2,3,4,5]) B = set([4,5,6,7]) A.symmetric_difference_update(B) print(A) # 輸出:{2, 3, 6, 7} union(取并集,,并生成新的集合) A = set([2,3,4,5]) B = set([4,5,6,7]) print(A.union(B)) # 輸出:{2, 3, 4, 5, 6, 7} update(取并集,改變?cè)瓉?lái)的集合) A = set([2,3,4,5]) B = set([4,5,6,7]) A.update(B) print(A) # 輸出:{2, 3, 4, 5, 6, 7} """ ///////////////////// {1, 2, 3, 4} {1, 2, 3, 4, 5, 6} {1, 3} {2, 4} {3, 4, 5} 2 set() 3 3 True {1, 2, 3} +_+_+_+_+_+_++_+_+_+_+_+_+_ {1, 2, 3, 4, 5, 6} <class 'set'> {1, 2, 3} {1, 2, 3} {0, 1, 2, 3, 4, 5, 6, 8, 9} {0, 1, 2, 3, 4, 5, 6, 8, 9} {4, 5, 6} {4, 5, 6} {0, 4, 5, 6, 8, 9} {0, 4, 5, 6, 8, 9} True True True False [Finished in 0.2s] |
|