国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python基礎之(四)之集合

CKJOKER / 1065人閱讀

摘要:并且集合中的元素也是隨機排序的。除了用來創建集合,還可以使用的方式,但是這種方式不提倡使用,因為在某些情況下,搞不清楚是字典還是集合。集合不是序列類型,不能用索引方式對其進行修改和實現集合和列表兩種對象之間的轉化。

集合Set類似字典的特點,可以用{}花括號來定義;其中的元素是沒有序列,也就是非序列類型的數據;而且集合中的元素不可重復,這就類似于dict鍵。

創建集合
>>> s1 = set("qiswri") #有兩個i
>>> s1
set(["q", "i", "s", "r", "w"]) #只有一個i
>>> 
>>> s2 = set([123,"google","facebook","book","facebook"]);
>>> s2
set(["facebook", 123, "google", "book"]) #只有一個facebook

說明集合中的元素是不能重復的,在創建集合的時候,如果發現了重復的元素,就會自定過濾重復的元素。并且集合中的元素也是隨機排序的。

除了用set()來創建集合,還可以使用{}的方式,但是這種方式不提倡使用,因為在某些情況下,Python搞不清楚是字典還是集合。

unhashtable(不可哈希的)表示可變數據,如列表和字典都能原地修改,就是unhastable的;
hastable(可哈希)表示不可變數據,如字符串不能修改。

>>> s1
set(["q", "i", "s", "r", "w"])
>>> s1[1] = "w"   #集合不是序列類型,不能用索引方式對其進行修改

Traceback (most recent call last):
  File "", line 1, in 
    s1[1] = "w"
TypeError: "set" object does not support item assignment

list()和set()實現集合和列表兩種對象之間的轉化。

>>> s2
set(["facebook", 123, "google", "book"])
>>> type(s2)

>>> lst = list(s2)
>>> lst
["facebook", 123, "google", "book"]
>>> type(lst)

>>> s3 = set(lst)
>>> s3
set(["google", 123, "facebook", "book"])
集合的函數

dir(set):列出集合的函數

add和update

help(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]) #不能添加列表,因為列表的數據是可變的

Traceback (most recent call last):
  File "", 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"])
pop、remove、discard、clear
>>> s1
set(["a", "c", "b", "e", "abc", "g", "f"])
>>> s1.pop() #隨機刪除一個元素,并返回這個元素
"a"
>>> s1.pop()
"c"
>>> s1.pop("b")  #不能指定參數

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必須指定參數

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 "", 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
集合與集合的關系 A是否等于B
>>> a
set(["q", "r", "e", "t", "w"])
>>> b = set(["a","b","c"])
>>> a == b
False
>>> a != b
True
A是否是B的子集
>>> c = set(["q","r"])
>>> a
set(["q", "r", "e", "t", "w"])
>>> 
>>> c.issubset(a) #判斷c是否是a的子集
True
>>> a.issuperset(c) #判斷a是否是c的超集
True
AB的并集
>>> 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相對B的差集

A相對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"])

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38208.html

相關文章

  • Python基礎接口——從協議到抽象基類

    摘要:本文重點協議是中非正式的接口了解抽象基類的基本概念以及標準庫中的抽象基類掌握抽象基類的使用方法。三抽象基類的使用通過繼承聲明抽象基類聲明抽象基類最簡單的方式是繼承或其他抽象基類注意在之間,繼承抽象基類的語法是。 導語:本文章記錄了本人在學習Python基礎之面向對象篇的重點知識及個人心得,打算入門Python的朋友們可以來一起學習并交流。 本文重點: 1、協議是Python中非正式的接...

    TwIStOy 評論0 收藏0
  • Python爬蟲學習路線

    摘要:以下這些項目,你拿來學習學習練練手。當你每個步驟都能做到很優秀的時候,你應該考慮如何組合這四個步驟,使你的爬蟲達到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學習不是一朝一夕的事情,建議多看看一些比較優秀的爬蟲的設計方案,比如說。 (一)如何學習Python 學習Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數據結構、語法...

    liaoyg8023 評論0 收藏0
  • Python基礎知識集合

    摘要:和一樣可以將元素從集合中刪除,區別是如果元素不存在則不會報錯。從集合中隨機刪除一個元素,并且返回該元素,如果集合為空則會報錯用于清空集合。 集合的描述 集合是無序的、不重復的數據集合,它本身是可變的,但里面的元素是不可變類型(這里要注意,即使是含有列表的元組也不可以,必須是完全不可變類型) 創建集合 創建集合可以使用大括號{}來創建,元素間用逗號分隔,但是不能用它來創建空集合,因為{}...

    libxd 評論0 收藏0
  • 基礎如何學爬蟲技術

    摘要:楚江數據是專業的互聯網數據技術服務,現整理出零基礎如何學爬蟲技術以供學習,。本文來源知乎作者路人甲鏈接楚江數據提供網站數據采集和爬蟲軟件定制開發服務,服務范圍涵蓋社交網絡電子商務分類信息學術研究等。 楚江數據是專業的互聯網數據技術服務,現整理出零基礎如何學爬蟲技術以供學習,http://www.chujiangdata.com。 第一:Python爬蟲學習系列教程(來源于某博主:htt...

    KunMinX 評論0 收藏0
  • 1024程序員節最新福利2018最全大數據資料集合

    摘要:前言有好久沒有寫博客了主要這段時間都沉迷學習無法自拔了哈哈自吹一波前兩天不是節嗎所以就有很多福利出現了當然每個人能都獲得的信息都有所不同這就是所謂的信息差秉著好東西需要分享和開源的好習慣所以來給你們送福利了其他福利一程序員節最新福利之最全資 前言 有好久沒有寫博客了,主要這段時間都沉迷學習無法自拔了,哈哈.自吹一波. 前兩天不是1024節嗎,所以就有很多福利出現了,當然每個人能都獲得的...

    RancherLabs 評論0 收藏0

發表評論

0條評論

CKJOKER

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<