Python基礎-07集合

7.集合

? ? 集合的主要特性如下所示:

  • 1.集合中不會存在重復元素捻脖,天生自帶去重功能
  • 2.集合可使用{item1,item2,...itemn}或set()進行定義厂抖,如果要定義一個空的集合纹蝴,必須使用set()函數(shù)
  • 3.使用set()函數(shù)定義集合時珊蟀,里面的參數(shù)必須為列表或元組
  • 4.集合是無序的

7.1 常用方法

  • clear():清空集合中的元素
  • difference():對集合求差集
  • difference_update():對集合求差集嫉入,并同步更新集合硫痰,即僅保留差集元素
  • discard():刪除指定的集合元素
  • intersection():對集合求交集
  • intersection_update():對集合求交集,并同步更新集合祖屏,即僅保留交集元素
  • isdisjoint():判斷兩個集合是否有交集助赞,如果有則返回False,否則返回True
  • issubset():判斷一個集合是否屬于另一個集合的子集
  • pop():從集合中刪除元素
  • remove():刪除指定集合元素
  • symmetric_difference():對兩個集合求對稱差集袁勺,即返回兩個集合中不重復的元素
  • symmetric_difference_update():對兩個集合求對稱差集雹食,并同步更新集合,即保留對稱差集的結果
  • union():對集合求并集
  • update():從一個集合向另一個集合添加元素
  • add():向集合添加元素

對稱差集定義:集合A與集合B的對稱差集定義為集合A與集合B中所有不屬于A∩B的元素的集合期丰,記為A△B婉徘,即A△B=(A∪B)—(A∩B)

? ? 示例代碼如下所示:

a={1,2,3,4,5}
b=set((1,2,3))
c=set([1,2,3,4,5,6,7,8])
d={6,7,8,9}
e={1,2,3}
f={1,2,3,4,5,6,8}
g={"a","b"}
h={"c","d"}

print(f"對集合示并集:{a.union(d)} {a | d }")
print(f"對集合求交集:{a.intersection(b)} {a & b}")
print(f"對集合求差集:{a.difference(b)} {a - b}")
print(f"對集合求對稱差集 {a.symmetric_difference(d)} {a ^ d}")
a.difference_update(b)
print(f"對集合求差集并更新:{a}")
a.discard(4)
print(f"刪除指定的集合元素:{a}")
c.intersection_update(a)
print(f"對集合求交集并更新:{c}")
print(f"對集合判斷是否有交集{a.isdisjoint(d)}")
print(f"判斷一個集合是否為另一個集合的子集:{e.issubset(f)}")
print(f"判斷一個集合是否為另一個集合的子集:{f.issuperset(e)}")
f.pop()
print(f"對集合使用pop刪除元素:{f}")
f.remove(8)
print(f"對集合使用remove刪除元素:{f}")
a.symmetric_difference_update(d)
print(f"對集合求對稱差集并更新:{a}")
g.update(h)
print(f"向一個集合插入另一個集合:{g}")
g.add(123)
print(f"向集合插入元素:{g}")

輸出結果如下所示:

對集合示并集:{1, 2, 3, 4, 5, 6, 7, 8, 9} {1, 2, 3, 4, 5, 6, 7, 8, 9}
對集合求交集:{1, 2, 3} {1, 2, 3}
對集合求差集:{4, 5} {4, 5}
對集合求對稱差集 {1, 2, 3, 4, 5, 6, 7, 8, 9} {1, 2, 3, 4, 5, 6, 7, 8, 9}
對集合求差集并更新:{4, 5}
刪除指定的集合元素:{5}
對集合求交集并更新:{5}
對集合判斷是否有交集True
判斷一個集合是否為另一個集合的子集:True
判斷一個集合是否為另一個集合的子集:True
對集合使用pop刪除元素:{2, 3, 4, 5, 6, 8}
對集合使用remove刪除元素:{2, 3, 4, 5, 6}
對集合求對稱差集并更新:{5, 6, 7, 8, 9}
向一個集合插入另一個集合:{'a', 'c', 'b', 'd'}
向集合插入元素:{'d', 'a', 'c', 'b', 123}

7.2優(yōu)缺點

  • 優(yōu)點:因為元素唯一,所以會用于去重
  • 缺點:不能存儲可變對象

? ? 經(jīng)常前面的學習咐汞,Python的基礎數(shù)據(jù)類型應該已經(jīng)掌握盖呼,在實際應用中,應該結合各種數(shù)據(jù)優(yōu)缺點化撕,靈活使用各種類型的數(shù)據(jù)几晤。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市植阴,隨后出現(xiàn)的幾起案子蟹瘾,更是在濱河造成了極大的恐慌圾浅,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件憾朴,死亡現(xiàn)場離奇詭異狸捕,居然都是意外死亡,警方通過查閱死者的電腦和手機众雷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門灸拍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人砾省,你說我怎么就攤上這事鸡岗。” “怎么了编兄?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵轩性,是天一觀的道長。 經(jīng)常有香客問我狠鸳,道長揣苏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任件舵,我火速辦了婚禮卸察,結果婚禮上,老公的妹妹穿的比我還像新娘芦圾。我一直安慰自己,他們只是感情好俄认,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布个少。 她就那樣靜靜地躺著,像睡著了一般眯杏。 火紅的嫁衣襯著肌膚如雪夜焦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天岂贩,我揣著相機與錄音茫经,去河邊找鬼。 笑死萎津,一個胖子當著我的面吹牛卸伞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锉屈,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼荤傲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了颈渊?” 一聲冷哼從身側(cè)響起遂黍,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤终佛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后雾家,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铃彰,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年芯咧,在試婚紗的時候發(fā)現(xiàn)自己被綠了牙捉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡唬党,死狀恐怖鹃共,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情驶拱,我是刑警寧澤霜浴,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蓝纲,受9級特大地震影響阴孟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜税迷,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一永丝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧箭养,春花似錦慕嚷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至撼泛,卻和暖如春挠说,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背愿题。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工损俭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人潘酗。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓杆兵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親仔夺。 傳聞我的和親對象是個殘疾皇子拧咳,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355