摘要:和一樣可以將元素從集合中刪除,區(qū)別是如果元素不存在則不會(huì)報(bào)錯(cuò)。從集合中隨機(jī)刪除一個(gè)元素,并且返回該元素,如果集合為空則會(huì)報(bào)錯(cuò)用于清空集合。
集合的描述
集合是無(wú)序的、不重復(fù)的數(shù)據(jù)集合,它本身是可變的,但里面的元素是不可變類型(這里要注意,即使是含有列表的元組也不可以,必須是完全不可變類型)
創(chuàng)建集合創(chuàng)建集合可以使用大括號(hào){}來(lái)創(chuàng)建,元素間用逗號(hào)分隔,但是不能用它來(lái)創(chuàng)建空集合,因?yàn)閧}創(chuàng)建的是空字典。
如 set1 = {1,2,3}
也可以使用set()函數(shù)來(lái)創(chuàng)建集合,其中的參數(shù)為可迭代對(duì)象即可(比如字符串、列表、元組、迭代器等),前提是元素中必須是不可變類型。
i = "abcdefg" a =set(i) print(type(a)) print(a) ----------增 add update{"b", "a", "f", "d", "g", "e", "c"}
add(elem)
可以向集合中添加新元素,如果該元素已存在則不做任何改變
s1 = {1,2,3} s1.add("qwe") print(s1) ---------- {1, 2, 3, "qwe"}
update(*others)
可將其他可迭代對(duì)象(比如字符串、列表、元組)添加到集合中,自動(dòng)刪除重復(fù)元素
s1 = {1,2,3} it = [3,4,5] s1.update(it) print(s1) ---------- {1, 2, 3, 4, 5}刪 remove(elem) discard(elem) pop() clear()
remove(elem)
將元素從集合中刪除,如果該元素不存在則會(huì)報(bào)錯(cuò)。
s1 = {1,2,3} s1.remove(2) print(s1) ---------- {1, 3}
discard(elem)
和remove一樣可以將元素從集合中刪除,區(qū)別是如果元素不存在則不會(huì)報(bào)錯(cuò)。
s1 = {1,2,3} s1.discard(6) print(s1) ---------- {1, 2, 3}
pop()
從集合中隨機(jī)刪除一個(gè)元素,并且返回該元素,如果集合為空則會(huì)報(bào)錯(cuò)
s1 = {1,2,3} a = s1.pop() print(s1) print(a) ---------- {2, 3} 1
clear()
用于清空集合。
對(duì)于集合來(lái)講有幾種運(yùn)算方法:交集、并集、差集、反交集、子集、超集
下面用代碼來(lái)詳細(xì)說(shuō)明每種方法的用法
s1 = {1,2,3,4,5} s2 = {3,4,5,6,7} print("交集:",s1 & s2) #可用&或者intersection,輸出一個(gè)新的集合,包含共同擁有的元素 print("交集:",s1.intersection(s2)) print("并集:",s1 | s2) #可用|或者union,輸出一個(gè)新的集合,包含兩個(gè)集合中所有的元素(去重) print("并集:",s1.union(s2)) print("差集:",s1 - s2) #可用 - 或者difference,輸出一個(gè)新的集合,包含前一個(gè)集合中除去共有的元素 print("差集:",s1.difference(s2)) print("反交集:",s1 ^ s2) #可用^或者 symmetric_difference,輸出一個(gè)新的集合,包含兩個(gè)集合中除去共有的元素后剩余的所有元素 print("反交集:",s1.symmetric_difference(s2))
交集: {3, 4, 5} 交集: {3, 4, 5} 并集: {1, 2, 3, 4, 5, 6, 7} 并集: {1, 2, 3, 4, 5, 6, 7} 差集: {1, 2} 差集: {1, 2} 反交集: {1, 2, 6, 7} 反交集: {1, 2, 6, 7}
子集與超集,簡(jiǎn)單來(lái)講就是一個(gè)集合中的元素包含另一個(gè)集合中所有的元素,則“大的”集合叫超集,“小的”叫子集
s1 = {1,2,3} s2 = {1,2,3,4,5} print(s1.issubset(s2)) #輸出為True,s1是s2的子集 print(s2.issuperset(s1))#輸出為True,s2是s1的超集 ---------- True True
另外,使用frozenset("集合名"),可以把集合變成不可變集合
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42555.html
摘要:并且集合中的元素也是隨機(jī)排序的。除了用來(lái)創(chuàng)建集合,還可以使用的方式,但是這種方式不提倡使用,因?yàn)樵谀承┣闆r下,搞不清楚是字典還是集合。集合不是序列類型,不能用索引方式對(duì)其進(jìn)行修改和實(shí)現(xiàn)集合和列表兩種對(duì)象之間的轉(zhuǎn)化。 集合Set類似字典的特點(diǎn),可以用{}花括號(hào)來(lái)定義;其中的元素是沒(méi)有序列,也就是非序列類型的數(shù)據(jù);而且集合中的元素不可重復(fù),這就類似于dict鍵。 創(chuàng)建集合 >>> s1 =...
摘要:前言有好久沒(méi)有寫博客了主要這段時(shí)間都沉迷學(xué)習(xí)無(wú)法自拔了哈哈自吹一波前兩天不是節(jié)嗎所以就有很多福利出現(xiàn)了當(dāng)然每個(gè)人能都獲得的信息都有所不同這就是所謂的信息差秉著好東西需要分享和開源的好習(xí)慣所以來(lái)給你們送福利了其他福利一程序員節(jié)最新福利之最全資 前言 有好久沒(méi)有寫博客了,主要這段時(shí)間都沉迷學(xué)習(xí)無(wú)法自拔了,哈哈.自吹一波. 前兩天不是1024節(jié)嗎,所以就有很多福利出現(xiàn)了,當(dāng)然每個(gè)人能都獲得的...
摘要:本文重點(diǎn)協(xié)議是中非正式的接口了解抽象基類的基本概念以及標(biāo)準(zhǔn)庫(kù)中的抽象基類掌握抽象基類的使用方法。三抽象基類的使用通過(guò)繼承聲明抽象基類聲明抽象基類最簡(jiǎn)單的方式是繼承或其他抽象基類注意在之間,繼承抽象基類的語(yǔ)法是。 導(dǎo)語(yǔ):本文章記錄了本人在學(xué)習(xí)Python基礎(chǔ)之面向?qū)ο笃闹攸c(diǎn)知識(shí)及個(gè)人心得,打算入門Python的朋友們可以來(lái)一起學(xué)習(xí)并交流。 本文重點(diǎn): 1、協(xié)議是Python中非正式的接...
摘要:讓你收獲滿滿碼個(gè)蛋從年月日推送第篇文章一年過(guò)去了已累積推文近篇文章,本文為年度精選,共計(jì)篇,按照類別整理便于讀者主題閱讀。本篇文章是今年的最后一篇技術(shù)文章,為了讓大家在家也能好好學(xué)習(xí),特此花了幾個(gè)小時(shí)整理了這些文章。 showImg(https://segmentfault.com/img/remote/1460000013241596); 讓你收獲滿滿! 碼個(gè)蛋從2017年02月20...
摘要:布爾值布爾值和布爾代數(shù)的表示完全一致,一個(gè)布爾值只有兩種值的數(shù)據(jù)類型可以通過(guò)內(nèi)置的函數(shù)查詢,例如還可以用來(lái)判斷和的區(qū)別在于不會(huì)認(rèn)為子類是一種父類類型。會(huì)認(rèn)為子類是一種父類類型。基本功能是進(jìn)行成員關(guān)系測(cè)試和刪除重復(fù)元素。 ...
閱讀 2829·2021-11-22 14:44
閱讀 575·2021-11-22 12:00
閱讀 3710·2019-08-30 15:54
閱讀 1606·2019-08-29 17:15
閱讀 1927·2019-08-29 13:50
閱讀 1144·2019-08-29 13:17
閱讀 3540·2019-08-29 13:05
閱讀 1203·2019-08-29 11:31