python基礎知識——內建資料結構(集合)
阿新 • • 發佈:2022-05-04
python中的set是指一系列無序元素的集合,其中的元素都是相異的,常見的操作包括集合的並集,交集和補集等操作。
1、set的建立
格式
set_name = {value1, value2, ...}
建立空的集合
set_name = set()
注意:在建立空的集合的時候不能使用
set_name = {}
這樣創建出來的是字典。
例如
animals = {'cat', 'dog'}
animals_null = set()
print animals, animals_null
另外,可以將list轉換成set型別
格式
set_name = set(list_name)
例如
animals = ['cat', 'dog']
animals_Set = set(animals)
print animals_Set
2、去除重複元素
set型別的資料結構中的元素是無序不重複的,可以利用這點,去除資料結構中相同的元素。
例如
animals = {'cat', 'dog', 'dog','pig'}
print animals
輸出結果
set(['cat', 'dog', 'pig'])
3、並、交、補操作
對於set資料結構來說,最重要的就是並(|)、交(&)、補(-)的操作。
#coding:UTF-8 sA = {1, 2, 2, 2, 4, 5, 5} sB = {4, 5, 6, 7} #交集 print sA & sB#set([4, 5]) #並集 print sA | sB#set([1, 2, 4, 5, 6, 7]) #補集 print sA - sB#set([1, 2])
並交補的另類寫法,並(union)、交(intersection)、補(difference)。
#coding:UTF-8 sA = {1, 2, 2, 2, 4, 5, 5} sB = {4, 5, 6, 7} #交集 print sA & sB#set([4, 5]) #並集 print sA | sB#set([1, 2, 4, 5, 6, 7]) #補集 print sA - sB#set([1, 2]) #並交補的另類寫法 print sA.intersection(sB)#set([4, 5]) print sA.union(sB)#set([1, 2, 4, 5, 6, 7]) print sA.difference(sB)#set([1, 2])
另外在集合的操作中,判斷集合的包含於子集。包含(>=或者issuperset),子集(<=或者issubset)。
#coding:UTF-8
sA = {1, 2, 2, 2, 4, 5, 5}
sB = {4, 5}
#判斷sA是否包含sB
print sA.issuperset(sB)
print sA >= sB
#判斷sB是否是sA的子集
print sB.issubset(sA)
print sB <= sA
4、其他的一些方法
增加單個元素(add),增加一組元素(update),判斷指定的元素是否存在(in或者not in),刪除指定的元素(remove),如果集合存在指定元素,則刪除該元素(discard),集合的清空(clear)
#coding:UTF-8
sA = {1, 2, 2, 2, 4, 5, 5}
#新增單個元素
sA.add(6)#set([1, 2, 4, 5, 6])
print sA
#新增多個元素
sA.update([7,8,9,9,9])#set([1, 2, 4, 5, 6, 7, 8, 9])
print sA
#判斷指定元素是否存在
print 5 in sA#True
print 10 not in sA#True
#刪除指定元素
sA.remove(6)#set([1, 2, 4, 5, 7, 8, 9])
print sA
#如果集合存在指定元素,則刪除該元素
sA.discard(9)#set([1, 2, 4, 5, 7, 8])
print sA
#集合的清空
sA.clear()#set([])
print sA
$(".MathJax").remove();