在數(shù)學(xué)上,集合(Set)是不以任何特定順序的數(shù)據(jù)項(xiàng)。 Python集合與此數(shù)學(xué)定義類(lèi)似,但有以下附加條件。
python中的集合通常用于像聯(lián)合,相交,異同和補(bǔ)充等數(shù)學(xué)運(yùn)算。下面創(chuàng)建一個(gè)集合,訪(fǎng)問(wèn)它的元素并執(zhí)行這些數(shù)學(xué)運(yùn)算。參考以下示例代碼 -
創(chuàng)建一個(gè)集合
通過(guò)使用set()函數(shù)或?qū)⑺性胤胖迷谝粚?duì)大括號(hào)內(nèi)創(chuàng)建一個(gè)集合。
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
Months={"Jan","Feb","Mar"}
Dates={21,22,17}
print(Days)
print(Months)
print(Dates)
當(dāng)上面的代碼執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果。 請(qǐng)注意結(jié)果中元素的順序如何變化。
{'Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sun', 'Sat'}
{'Feb', 'Mar', 'Jan'}
{17, 21, 22}
訪(fǎng)問(wèn)集合中的值
我們無(wú)法訪(fǎng)問(wèn)集合中的單個(gè)值。只能如上所示訪(fǎng)問(wèn)所有元素。 但是也可以通過(guò)遍歷該集合來(lái)獲取單個(gè)元素的列表。
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
for d in Days:
print(d)
當(dāng)執(zhí)行上面示例代碼時(shí),得到以下結(jié)果 -
Wed
Sun
Fri
Tue
Mon
Thu
Sat
將項(xiàng)目添加到集合
可以使用add()方法將元素添加到集合中。附加到新添加的元素不需要指定索引。
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
Days.add("Sun")
print(Days)
當(dāng)上面的代碼執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果 -
{'Wed', 'Sat', 'Thu', 'Mon', 'Sun', 'Tue', 'Fri'}
從集合中刪除項(xiàng)目
可以使用discard()方法從集合中刪除元素。參考以下代碼實(shí)現(xiàn) -
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
Days.discard("Sun")
print(Days)
執(zhí)行上面示例代碼,得到以下結(jié)果 -
{'Tue', 'Fri', 'Wed', 'Sat', 'Thu', 'Mon'}
集合的聯(lián)合操作
兩個(gè)集合上的聯(lián)合操作產(chǎn)生一個(gè)包含來(lái)自?xún)蓚€(gè)集合的所有不同元素的新集合。 在下面的例子中,元素"Wed"出現(xiàn)在兩個(gè)集合中。
DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA|DaysB
print(AllDays)
執(zhí)行上面示例代碼,得到以下結(jié)果 -
{'Mon', 'Sun', 'Thu', 'Tue', 'Wed', 'Fri', 'Sat'}
集合的交集
兩個(gè)集合上的交集操作產(chǎn)生一個(gè)新的集合,其中只包含來(lái)自?xún)蓚€(gè)集合的共同元素。 在下面的例子中,元素"Wed"出現(xiàn)在兩個(gè)集合中。
DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA & DaysB
print(AllDays)
執(zhí)行上面示例代碼,得到以下結(jié)果 -
{'Wed'}
集合的差集
對(duì)兩組進(jìn)行差異化操作會(huì)產(chǎn)生一個(gè)新的集合,其中只包含來(lái)自第一集合的元素,而不包含第二集合中的元素。 在下面的例子中,元素Wed出現(xiàn)在兩個(gè)集合中,所以它不會(huì)在結(jié)果集中找到。
DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA - DaysB
print(AllDays)
執(zhí)行上面示例代碼,得到以下結(jié)果 -
{'Mon', 'Tue'}
比較集合
可以檢查一個(gè)給定的集合是否是另一個(gè)集合的子集或超集。 結(jié)果是True或False,取決于組中存在的元素。
DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
SubsetRes = DaysA <= DaysB
SupersetRes = DaysB >= DaysA
print(SubsetRes)
print(SupersetRes)
執(zhí)行上面示例代碼,得到以下結(jié)果 -
True
True