摘要:并且集合中的元素也是隨機(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 = set("qiswri") #有兩個(gè)i >>> s1 set(["q", "i", "s", "r", "w"]) #只有一個(gè)i >>> >>> s2 = set([123,"google","facebook","book","facebook"]); >>> s2 set(["facebook", 123, "google", "book"]) #只有一個(gè)facebook
說(shuō)明集合中的元素是不能重復(fù)的,在創(chuàng)建集合的時(shí)候,如果發(fā)現(xiàn)了重復(fù)的元素,就會(huì)自定過(guò)濾重復(fù)的元素。并且集合中的元素也是隨機(jī)排序的。
除了用set()來(lái)創(chuàng)建集合,還可以使用{}的方式,但是這種方式不提倡使用,因?yàn)樵谀承┣闆r下,Python搞不清楚是字典還是集合。
unhashtable(不可哈希的)表示可變數(shù)據(jù),如列表和字典都能原地修改,就是unhastable的;
hastable(可哈希)表示不可變數(shù)據(jù),如字符串不能修改。
>>> s1 set(["q", "i", "s", "r", "w"]) >>> s1[1] = "w" #集合不是序列類型,不能用索引方式對(duì)其進(jìn)行修改 Traceback (most recent call last): File "", line 1, in s1[1] = "w" TypeError: "set" object does not support item assignment
list()和set()實(shí)現(xiàn)集合和列表兩種對(duì)象之間的轉(zhuǎn)化。
>>> s2 set(["facebook", 123, "google", "book"]) >>> type(s2)集合的函數(shù)>>> lst = list(s2) >>> lst ["facebook", 123, "google", "book"] >>> type(lst) >>> s3 = set(lst) >>> s3 set(["google", 123, "facebook", "book"])
dir(set):列出集合的函數(shù)
add和updatehelp(set.add)
>>> s1 = set(["a","b","c"]) >>> s1 set(["a", "c", "b"]) >>> s1.add("abc") #向集合中添加元素 >>> s1 set(["a", "c", "b", "abc"]) >>> s1.add([1,2,3]) #不能添加列表,因?yàn)榱斜淼臄?shù)據(jù)是可變的 Traceback (most recent call last): File "pop、remove、discard、clear", line 1, in s1.add([1,2,3]) TypeError: unhashable type: "list" >>> >>> s1 set(["a", "c", "b", "abc"]) >>> s2 = set(["e","f","g"]) >>> s1.update(s2) #集合s2添加到s1中 >>> s1 set(["a", "c", "b", "e", "abc", "g", "f"]) >>> s2 set(["e", "g", "f"])
>>> s1 set(["a", "c", "b", "e", "abc", "g", "f"]) >>> s1.pop() #隨機(jī)刪除一個(gè)元素,并返回這個(gè)元素 "a" >>> s1.pop() "c" >>> s1.pop("b") #不能指定參數(shù) Traceback (most recent call last): File "不變的集合", line 1, in s1.pop("b") TypeError: pop() takes no arguments (1 given) >>> >>> s1.remove("b") #刪除集合中指定的元素 >>> s1 set(["e", "abc", "g", "f"]) >>> s1.remove() #remove必須指定參數(shù) Traceback (most recent call last): File " ", line 1, in s1.remove() TypeError: remove() takes exactly one argument (0 given) >>> s1.discard("g") #存在則刪除集合中的元素 >>> s1 set(["e", "abc", "f"]) >>> s1.discard("i") #不存在則不做處理,不拋出異常 >>> >>> s1.clear() #清空集合 >>> s1 set([])
>>> f1 = frozenset("qwert") >>> f1 frozenset(["q", "r", "e", "t", "w"]) >>> f1.add("q") #不能修改集合 Traceback (most recent call last): File "集合元素 元素與集合的關(guān)系", line 1, in f1.add("q") AttributeError: "frozenset" object has no attribute "add" >>> f1.remove("r") Traceback (most recent call last): File " ", line 1, in f1.remove("r") AttributeError: "frozenset" object has no attribute "remove" >>> f1.pop() Traceback (most recent call last): File " ", line 1, in f1.pop() AttributeError: "frozenset" object has no attribute "pop"
>>> aset=set(["q","w","e","r","t"]) >>> aset set(["q", "r", "e", "t", "w"]) >>> "q" in aset True >>> "a" in aset False集合與集合的關(guān)系 A是否等于B
>>> a set(["q", "r", "e", "t", "w"]) >>> b = set(["a","b","c"]) >>> a == b False >>> a != b TrueA是否是B的子集
>>> c = set(["q","r"]) >>> a set(["q", "r", "e", "t", "w"]) >>> >>> c.issubset(a) #判斷c是否是a的子集 True >>> a.issuperset(c) #判斷a是否是c的超集 TrueAB的并集
>>> a set(["q", "r", "e", "t", "w"]) >>> b set(["a", "c", "b"]) >>> a | b set(["a", "c", "b", "e", "q", "r", "t", "w"]) #ab的并集 >>> a.union(b) set(["a", "c", "b", "e", "q", "r", "t", "w"]) #ab的并集AB的交集
>>> a set(["q", "r", "e", "t", "w"]) >>> b set(["a", "q", "c", "b"]) >>> a & b #ab的交集 set(["q"]) >>> a.intersection(b) set(["q"])A相對(duì)B的差集
A相對(duì)B不同的部分元素集合
>>> a set(["q", "r", "e", "t", "w"]) >>> b set(["a", "q", "c", "b"]) >>> a - b set(["r", "e", "t", "w"]) >>> a.difference(b) set(["r", "e", "t", "w"])AB的差集
AB中不同元素的集合
>>> a set(["q", "r", "e", "t", "w"]) >>> b set(["a", "q", "c", "b"]) >>> a.symmetric_difference(b) set(["a", "c", "b", "e", "r", "t", "w"])
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/38208.html
摘要:本文重點(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è)人心得,打算入門(mén)Python的朋友們可以來(lái)一起學(xué)習(xí)并交流。 本文重點(diǎn): 1、協(xié)議是Python中非正式的接...
摘要:以下這些項(xiàng)目,你拿來(lái)學(xué)習(xí)學(xué)習(xí)練練手。當(dāng)你每個(gè)步驟都能做到很優(yōu)秀的時(shí)候,你應(yīng)該考慮如何組合這四個(gè)步驟,使你的爬蟲(chóng)達(dá)到效率最高,也就是所謂的爬蟲(chóng)策略問(wèn)題,爬蟲(chóng)策略學(xué)習(xí)不是一朝一夕的事情,建議多看看一些比較優(yōu)秀的爬蟲(chóng)的設(shè)計(jì)方案,比如說(shuō)。 (一)如何學(xué)習(xí)Python 學(xué)習(xí)Python大致可以分為以下幾個(gè)階段: 1.剛上手的時(shí)候肯定是先過(guò)一遍Python最基本的知識(shí),比如說(shuō):變量、數(shù)據(jù)結(jié)構(gòu)、語(yǔ)法...
摘要:和一樣可以將元素從集合中刪除,區(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)閧}...
摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)以供學(xué)習(xí),。本文來(lái)源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲(chóng)軟件定制開(kāi)發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲(chóng)學(xué)習(xí)系列教程(來(lái)源于某博主:htt...
摘要:前言有好久沒(méi)有寫(xiě)博客了主要這段時(shí)間都沉迷學(xué)習(xí)無(wú)法自拔了哈哈自吹一波前兩天不是節(jié)嗎所以就有很多福利出現(xiàn)了當(dāng)然每個(gè)人能都獲得的信息都有所不同這就是所謂的信息差秉著好東西需要分享和開(kāi)源的好習(xí)慣所以來(lái)給你們送福利了其他福利一程序員節(jié)最新福利之最全資 前言 有好久沒(méi)有寫(xiě)博客了,主要這段時(shí)間都沉迷學(xué)習(xí)無(wú)法自拔了,哈哈.自吹一波. 前兩天不是1024節(jié)嗎,所以就有很多福利出現(xiàn)了,當(dāng)然每個(gè)人能都獲得的...
閱讀 1093·2021-11-22 13:52
閱讀 1002·2019-08-30 15:44
閱讀 621·2019-08-30 15:43
閱讀 2488·2019-08-30 12:52
閱讀 3533·2019-08-29 16:16
閱讀 711·2019-08-29 13:05
閱讀 2998·2019-08-26 18:36
閱讀 2076·2019-08-26 13:46