08-集合

集合

特點(diǎn):
1.不同元素組成
2.無序
3.集合中的元素必須是不可變類型

? 集合中只能包含數(shù)字咆课、字符串末誓、元組等不可變類型(或者說可哈希)的數(shù)據(jù),而不能包含列表书蚪、字典喇澡、集合等可變類型的數(shù)據(jù)。


1. 集合的創(chuàng)建

1.1 使用 {} 創(chuàng)建

語法格式:set_name = {element1,element2,...,elementn}

a = {1, 'c', 1, (1, 2, 3), 'c'}
print(a)  # out: {1, 'c', (1, 2, 3)}


1.2 set()函數(shù)創(chuàng)建集合

作用:將字符串殊校、列表晴玖、元組、range() 對象等可迭代對象轉(zhuǎn)換成集合

語法格式:set_name = set(iteration)

set1 = set("acbjkb")
set2 = set([1, 2, 3, 4, 5])
set3 = set((1, 2, 3, 4, 5))
print("set1:", set1)  # out: set1: {'c', 'b', 'a', 'k', 'j'}(隨機(jī)的)
print("set2:", set2)  # out: set3: {1, 2, 3, 4, 5}
print("set3:", set3)  # out: set3: {1, 2, 3, 4, 5}


2. 訪問集合元素及向集合中添加元素

2. 1 訪問集合元素最常用的方法:使用循環(huán)結(jié)構(gòu)

作用:將集合中的數(shù)據(jù)逐一讀取出來为流。

a = {1, 'c', 1, (1,2,3), 'c'}
for ele in a:
    print(ele,end=' ')  # out: 1 c (1, 2, 3)


2. 2 添加元素

只能是數(shù)字呕屎、字符串、元組或者布爾類型(True 和 False)值敬察,不能添加列表秀睛、字典、集合這類可變的數(shù)據(jù)莲祸,否則 Python 解釋器會報(bào) TypeError 錯誤蹂安。

語法格式:set_name.add(element)

a = {1, 2, 3}
a.add((1, 2))
print(a)  # out: {(1, 2), 1, 2, 3}
a.add([1, 2])
print(a)  # out: 報(bào)錯


3. 刪除集合及集合中的元素

3. 1 刪除集合

語法格式:del(set_name)

a = {1,'c',1,(1,2,3),'c'}
del(a)


3. 2 刪除集合中指定元素

語法格式:set_name.remove(element) , set_name.discard(element)

a = {1, 2, 3}
a.remove(1)
print(a)  # out: {2, 3}
a.remove(1)
print(a)  # out: 報(bào)錯,1已經(jīng)被刪除锐帜,因此不能再使用remove()方法刪除

b = {4, 2, 3}
b.remove(1)
print(b)  # out: {2, 3}
b.discard(1)
print(b)  # out: {2, 3}
b.discard(1)
print(b)  # out: {2, 3}

remove()discard()的區(qū)別:當(dāng)刪除集合中元素失敗時(shí)田盈,remove()方法會拋出錯誤,而discard()方法不會拋出任何錯誤缴阎。

3.3 pop()和clear()方法

語法格式:set_name.pop() , set_name.clear()

s = {1, 2, 3, 4, 5, 6}
s.pop()  # out: pop刪除時(shí)是無序的隨機(jī)刪除
print(s)  # out: {2, 3, 4, 5, 6}

s = {1, 2, 3, 4, 5, 6}
s.clear()  # 清空集合
print(s)  # out: set()


4.集合的運(yùn)算

集合的運(yùn)算:
交( & ):取兩集合公共的元素
并( | ):取兩集合全部的元素
差( - ):取一個集合中另一集合沒有的元素
對稱差( ^ ):取集合 A 和 B 中不屬于 A&B 的元素

set1 = {1, 3, 5, 7}
set2 = {3, 6, 9, 12}
set1 & set2  # out: {3}
set1 | set2  # out: {1, 3, 5, 6, 7, 9, 12}
set1 - set2  # out: {1, 5, 7}
set2 - set1  # out: {9, 12, 6}
set1 ^ set2  # out: {1, 5, 6, 7, 9, 12}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缠黍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子药蜻,更是在濱河造成了極大的恐慌瓷式,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件语泽,死亡現(xiàn)場離奇詭異贸典,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)踱卵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門廊驼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人惋砂,你說我怎么就攤上這事妒挎。” “怎么了西饵?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵酝掩,是天一觀的道長。 經(jīng)常有香客問我眷柔,道長期虾,這世上最難降的妖魔是什么原朝? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮镶苞,結(jié)果婚禮上喳坠,老公的妹妹穿的比我還像新娘。我一直安慰自己茂蚓,他們只是感情好壕鹉,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著聋涨,像睡著了一般御板。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上牛郑,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天怠肋,我揣著相機(jī)與錄音,去河邊找鬼淹朋。 笑死笙各,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的础芍。 我是一名探鬼主播杈抢,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼仑性!你這毒婦竟也來了惶楼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤诊杆,失蹤者是張志新(化名)和其女友劉穎歼捐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晨汹,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡豹储,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了淘这。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剥扣。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖铝穷,靈堂內(nèi)的尸體忽然破棺而出钠怯,到底是詐尸還是另有隱情,我是刑警寧澤曙聂,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布晦炊,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏刽锤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一朦佩、第九天 我趴在偏房一處隱蔽的房頂上張望并思。 院中可真熱鬧,春花似錦语稠、人聲如沸宋彼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽输涕。三九已至,卻和暖如春慨畸,著一層夾襖步出監(jiān)牢的瞬間莱坎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工寸士, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留檐什,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓弱卡,卻偏偏與公主長得像乃正,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子婶博,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348