詳解python的集合set的函數

s={ x1,x2,x3…..};

集合有自動去重的功能,而且可以進行交並補運算,而且集合是無序的,每次打印的結果不一樣,故不可以用元素下標進行取值。因無法取值,故無法對特定的值進行修改。但是可以進行刪除操作。

s=set();表示創建一個空的集合。註意:s={}表示創建一個空的字典。

常用

查詢

x in s,s為一個集合,返回bool類型,判斷x是否在集合s中。

增加

s.add(“x”);將“x”添加到集合s中。

刪除

s.pop();隨機刪除集合s中的一個元素。

s.remove(“x”);刪除集合s中的元素“x”,若無“x”則報錯。

s.discard(“x”);刪除集合s中的元素“x”,若無“x”不報錯。

s.clear();將集合s清空,清空後s=set()。

交、並、補、對稱差

交集

s=s1&s2s=s1.intersection(s2)s=set.intersection(s1,s2);得到集合s為集合s1和集合s2的交集。

並集

s=s1|s2s=s1.unoin(s2)s=set.union(s1,s2);得到集合s為集合s1和集合s2的並集。

補集

s=s1-s2s=s1.difference(s2)s=set.difference(s1,s2);得到集合s為在集合s1中但不在集合s2中的元素。

對稱差

s=s1^s2s=s1.symmetric_difference(s2)s=set.symmetric_difference(s1,s2);得到集合s為僅在集合s1和僅在集合s2中的元素之和。

其他

s1=s.copy();將集合s的數據復制給集合s1,s和s1的地址不同,互不影響。(若用s1=s,則s1的數據與s相同且地址相同,對s做修改等於對s1做修改)

s.difference_update(s1,s2);將s-s1-s2的結果(補集)賦值給s。

s.intersection_update(s1,s2);將s&s1&s2的結果(交集)賦值給s。

s.isdisjoint(s1);如果s與s1的交集為空,則返回True,否則返回False。

s.issubset(s1);若s為s1的子集,則返回True。

s.issuperset(s1);若s1為s的子集,則返回True。

s.symmetric_difference_update(s1);括號內隻能有一個參數,將s^s1的結果(對稱差)賦值給s。

s.update(s1,s2);將s|s1|s2的結果(並集)賦值給s 。

總結

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: