1. 程式人生 > 其它 >python基礎知識——內建資料結構(集合)

python基礎知識——內建資料結構(集合)

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();