在Python中,集合是一種無序且不重復的數據類型,可以用于存儲一組元素。創建一個集合非常簡單,只需要使用大括號{}或者set()函數即可。
使用(yong)大括(kuo)號{}創(chuang)建集合
使用大(da)括號{}創建集合,需要(yao)將元素用逗號隔開,并將整(zheng)個集合放在一對大(da)括號{}中,例如(ru):
set1 = {1, 2, 3, 4, 5}
上述代(dai)碼創(chuang)建了(le)一個名為(wei)set1的集合(he),其中包含了(le)整(zheng)數1到5。需(xu)要(yao)注意(yi)的是,大括號(hao){}在Python中還(huan)可以(yi)用于創(chuang)建字典類(lei)型,因此(ci)如果要(yao)創(chuang)建一個空(kong)集合(he),必須使用set()函數。
使(shi)用set()函數(shu)創建集(ji)合(he)
使用set()函數創建集(ji)合,可以將一個可迭代對(dui)象(如列表、元(yuan)組(zu)、字符串(chuan)等)轉換為(wei)集(ji)合。例(li)如:
set2 = set([1, 2, 3, 4, 5])set3 = set('hello')
上述代碼分(fen)別創建了(le)(le)兩個集合set2和set3,其中set2包(bao)含(han)了(le)(le)整數1到5,set3包(bao)含(han)了(le)(le)字符(fu)串'hello'中的字符(fu)。需(xu)要(yao)注意的是(shi),通過set()函數創建的集合是(shi)無序的,因(yin)此元素(su)的順序可能與原來的順序不同。
集合操作
創建(jian)好集合(he)之后,可以(yi)進行一(yi)些基本的集合(he)操作(zuo)。例如,可以(yi)使(shi)用in關鍵字判斷一(yi)個元素是否在集合(he)中:
set1 = {1, 2, 3, 4, 5}
print(1 in set1) # True
print(6 in set1) # False
可以使用len()函(han)數獲(huo)取集(ji)合的大小:
set2 = set([1, 2, 3, 4, 5])print(len(set2)) # 5
可以(yi)使用add()方法向集合中(zhong)添加一個元素(su):
set3 = set('hello')set3.add('!')print(set3) # {'o', 'h', 'e', '!', 'l'}
可以使用remove()方法從集合中刪(shan)除一個元素(su):
set4 = {1, 2, 3, 4, 5}set4.remove(3)print(set4) # {1, 2, 4, 5}
需要注(zhu)意的是(shi),如果(guo)要刪除的元素不存在(zai)于(yu)集(ji)合(he)中,會引(yin)發KeyError異常。為了避(bi)免(mian)這種情況,可以使用discard()方法(fa),該方法(fa)不會引(yin)發異常。
集合運算
除了基(ji)本的集合操作,還可以進行一些集合運算。例如,可以使用union()方法求(qiu)兩(liang)個集合的并(bing)集:
set1 = {1, 2, 3}set2 = {3, 4, 5}print(set1.union(set2)) # {1, 2, 3, 4, 5}
可以使用intersection()方法求兩個集(ji)合(he)的交(jiao)集(ji):
set1 = {1, 2, 3}set2 = {3, 4, 5}print(set1.intersection(set2)) # {3}
還可以使用difference()方法求兩個集合的差集:
set1 = {1, 2, 3}set2 = {3, 4, 5}print(set1.difference(set2)) # {1, 2}
需要注意(yi)的是,集(ji)(ji)合運(yun)算的結果是一個(ge)新(xin)的集(ji)(ji)合,不會影響原來的集(ji)(ji)合。