0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

python集合是什么

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-02-23 17:01 ? 次閱讀

python集合

集合(英文名 set),它是一個無序的不重復元素序列。

這里面有兩個重點:

無序,

不重復

1. 創(chuàng)建集合

集合的創(chuàng)建有兩種方法

第一種方法:使用 花括號 {} 直接創(chuàng)建,創(chuàng)建的時候,{} 可以包含有重要的元素,但是創(chuàng)建完后,集合會去重,只留第一個。

>>> aset = {"Apple", "Huawei", "Xiaomi"}
>>> aset
set(['Huawei', 'Xiaomi', 'Apple'])

第二種方法:使用 set() 方法進行創(chuàng)建,當set() 函數(shù)不接任何參數(shù)時,創(chuàng)建的是空集合,如果不創(chuàng)建空集合,可以傳入一個列表。

>>> bset = set()  # 空集合
>>> bset
set([])
>>> cset = set(["Apple", "Huawei", "Xiaomi"])
>>> cset
set(['Huawei', 'Apple', 'Xiaomi'])

2. 增刪改查

增加元素

使用 add 函數(shù)可以往集合中傳入函數(shù)

>>> aset = set()
>>> aset
set([])
>>> aset.add("Apple")
>>> aset.add("Huawei")
>>> aset
set(['Huawei', 'Apple'])

另外,還可以使用 update 函數(shù),來往集合中添加元素,update 函數(shù)后可接集合,列表,元組,字典等。

這是接集合的例子

>>> aset = set()
>>> aset
set([])
>>>
>>> # 接集合
>>> aset.update({"Apple"})
>>> aset
set(['Apple'])
>>>
>>> # 接列表
>>> aset.update(["Huawei"])
>>> aset
set(['Huawei', 'Apple'])
>>>
>>> # 接元組
>>> aset.update(("Xiaomi",))
>>> aset
set(['Huawei', 'Apple', 'Xiaomi'])
>>>
>>> # 接字典
>>> aset.update({"VIVO": "xxxx"})
>>> aset
set(['Huawei', 'Apple', 'VIVO', 'Xiaomi'])

刪除元素

使用 remove 函數(shù)可以刪除集合中的元素

>>> aset = {"Apple", "Huawei", "Xiaomi"}
>>> aset.remove("Xiaomi")
>>> aset
set(['Huawei', 'Apple'])

使用 remove 函數(shù),如果對應的元素不存在,是會報錯的。

>>> aset = {"Apple", "Huawei", "Xiaomi"}
>>> aset.remove("VIVO")
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'VIVO'

對于這種情況,你可以使用 discard 函數(shù),存在元素則移除,不存在也不會報錯。

>>> aset = {"Apple", "Huawei", "Xiaomi"}
>>> aset.discard("VIVO")
>>> aset
set(['Huawei', 'Xiaomi', 'Apple'])

此外,還有一個 pop 函數(shù),用于從集合中隨機刪除元素,和列表、字典的 pop 不一樣,這里的 pop 不能加任何的參數(shù)。

>>> aset = {"Apple", "Huawei", "Xiaomi"}
>>> aset.pop()
'Huawei'
>>> aset.pop()
'Xiaomi'
>>> aset.pop()
'Apple'

最后,還要介紹一個 clear 函數(shù),它用于清空集合的元素。

>>> aset = {"Apple", "Huawei", "Xiaomi"}
>>> aset
set(['Huawei', 'Xiaomi', 'Apple'])
>>> aset.clear()
>>> aset
set([])

修改元素

文章開頭處,已經(jīng)說明了集合是 無序 的,因此集合是沒有索引的。

既然沒有索引,修改也無從談起。

記住:集合只有添加元素、刪除元素。

查詢元素

同上,沒有順序,也就沒有索引,沒有索引,查詢也無從談起。

但是我們可以查看集合的其他內(nèi)容

比如,查看集合的長度

>>> aset = {"Apple", "Huawei", "Xiaomi"}
>>> len(aset)
3

3. 集合運算

求合集

將兩個集合進行合并并去重,可以使用 union 函數(shù),下面的示例中,由于 Huawei 是重復的元素,只會保留一個。

>>> aset = {"Apple", "Huawei"}
>>> bset = {"Xiaomi", "Huawei"}
>>> aset.union(bset)
set(['Huawei', 'Apple', 'Xiaomi'])

另外還可以使用 | 的操作符

>>> aset = {"Apple", "Huawei"}
>>> bset = {"Xiaomi", "Huawei"}
>>> aset | bset
set(['Huawei', 'Apple', 'Xiaomi'])

求差集

要找出存在集合 A 但是不存在 集合 B 的元素,就是對兩個集合求差集。

可以使用 difference 函數(shù),下面的示例中, Apple 在 aset 中存在,但在 bset 中不存在。

>>> aset = {"Apple", "Huawei"}
>>> bset = {"Xiaomi", "Huawei"}
>>> aset.difference(bset)
set(['Apple'])

另外還可以使用 - 的操作符,更加直觀

>>> aset = {"Apple", "Huawei"}
>>> bset = {"Xiaomi", "Huawei"}
>>> aset - bset
set(['Apple'])

求交集

要找出存在集合 A 并且存在集合 B 的元素,就是對兩個集合求交集。

可以使用 intersection 函數(shù)

>>> aset = {"Apple", "Huawei"}
>>> bset = {"Xiaomi", "Huawei"}
>>> aset.intersection(bset)
set(['Huawei'])
>>>

intersection 相似的還有一個 intersection_update 函數(shù),它們的區(qū)別是,intersection_update 會原地更新在 aset 上,而不是會回交集。

>>> aset = {"Apple", "Huawei"}
>>> bset = {"Xiaomi", "Huawei"}
>>> aset.intersection_update(bset)
>>> aset
set(['Huawei'])

另外還可以使用 & 的操作符

>>> aset = {"Apple", "Huawei"}
>>> bset = {"Xiaomi", "Huawei"}
>>> aset & bset
set(['Huawei'])

求不重合集

如果計算兩個集合中不重復的元素集合,可以使用 symmetric_difference 函數(shù)

>>> aset = {"Apple", "Huawei"}
>>> bset = {"Xiaomi", "Huawei"}
>>> aset.symmetric_difference(bset)
set(['Xiaomi', 'Apple'])

symmetric_difference 相似的還有一個 symmetric_difference_update 函數(shù),它們的區(qū)別是,symmetric_difference_update 會原地更新在 aset 上,而不是直接返回。

>>> aset = {"Apple", "Huawei"}
>>> bset = {"Xiaomi", "Huawei"}
>>> aset.symmetric_difference_update(bset)
>>> aset
set(['Apple', 'Xiaomi'])

4. 集合判斷

判斷是否有某元素

>>> aset = {"Apple", "Huawei"}
>>> "Apple" in aset
True

判斷兩集合是否有相同元素

如果兩集合有相同元素,則返回 False,如果沒有相同元素,則返回 True

>>> aset = {"Apple", "Huawei"}
>>> bset = {"Xiaomi", "Huawei"}
>>> aset.isdisjoint(bset)
False

判斷是否是子集

>>> aset = {"Apple", "Huawei"}
>>> bset = {"Huawei"}
>>> bset.issubset(aset)
True

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 集合
    +關注

    關注

    0

    文章

    9

    瀏覽量

    8094
  • python
    +關注

    關注

    54

    文章

    4759

    瀏覽量

    84296
收藏 人收藏

    評論

    相關推薦

    python運行環(huán)境的安裝和配置

    Python是一種非常流行的編程語言,廣泛應用于科學計算、Web開發(fā)、人工智能等領域。為了能夠正常運行Python程序,我們需要先安裝和配置Python運行環(huán)境。本文將為您詳盡介紹Python
    的頭像 發(fā)表于 11-29 16:17 ?1041次閱讀

    python軟件對電腦配置要求

    Python是一種流行的編程語言,它在許多不同的領域中被廣泛使用,例如網(wǎng)站開發(fā)、數(shù)據(jù)科學和機器學習等。對于使用Python的開發(fā)者來說,了解Python軟件的電腦配置要求是非常重要的。本文將詳細介紹
    的頭像 發(fā)表于 11-29 14:58 ?9424次閱讀

    python軟件怎么運行代碼

    Python是一種高級編程語言,它被廣泛用于開發(fā)各種類型的應用程序,從簡單的腳本到復雜的網(wǎng)絡應用和機器學習模型。要運行Python代碼,您需要一個Python解釋器,它可以將您的代碼翻譯成計算機可以
    的頭像 發(fā)表于 11-28 16:02 ?820次閱讀

    如何運行Python程序

    運行Python程序非常簡單。Python是一種解釋型語言,這意味著可以直接通過解釋器來執(zhí)行代碼。下面我將詳細介紹如何運行Python程序。 一、安裝Python 在運行
    的頭像 發(fā)表于 11-24 09:31 ?1073次閱讀

    python怎么運行程序

    Python是一種廣泛使用的編程語言,它的簡易和可讀性使得它成為初學者和專業(yè)開發(fā)人員的首選。在運行Python程序之前,您需要安裝Python解釋器,然后按照以下步驟進行操作。 步驟1:安裝
    的頭像 發(fā)表于 11-24 09:25 ?2432次閱讀

    Python2與Python3的差異

    Python2與Python3是兩個不同的版本,它們在語法、功能和性能等方面存在一些差異。下面是對Python2和Python3的詳盡、詳實、細致的比較,分為以下幾個方面: 語法差異:
    的頭像 發(fā)表于 11-23 16:48 ?827次閱讀

    python如何遍歷列表并提取

    是一種有序的可變集合,可以容納任意類型的元素。在Python中,列表用方括號[ ]表示,其中的元素可以通過索引進行訪問。索引是從0開始,表示列表中元素的位置。 在遍歷列表時,可以使用for循環(huán)配合列表的長度來遍歷每一個元素。下面是一個示例代碼,展示了如何遍歷
    的頭像 發(fā)表于 11-23 15:55 ?1185次閱讀

    Python自帶的命令窗口

    Python自帶的命令窗口,也稱為Python交互式解釋器,是Python編程語言的一個重要工具,它允許用戶在命令行界面中輸入和執(zhí)行Python代碼。不同于編寫腳本并保存為文件后再執(zhí)行
    的頭像 發(fā)表于 11-22 14:02 ?818次閱讀

    python寫完程序之后怎么運行

    Python程序的執(zhí)行流程有更深入的了解。 一、Python程序的基本結(jié)構(gòu) Python程序是由一系列的語句構(gòu)成,語句是指一行代碼或多行代碼組成的指令集合。一個
    的頭像 發(fā)表于 11-22 11:10 ?907次閱讀

    python中tuple的用法

    Python中的元組(tuple)是一種不可變的有序集合。與列表(list)類似,元組可以存儲任意類型的數(shù)據(jù),但是元組一旦創(chuàng)建就不能被修改。在Python中,元組是使用圓括號進行表示,其中的元素可以
    的頭像 發(fā)表于 11-21 16:27 ?861次閱讀

    python中的set類型

    Python中的set類型是一種無序、可變的集合數(shù)據(jù)類型,它的主要特點是不允許重復元素的存在。本文將詳盡、詳實、細致地介紹set類型的使用場景、常用操作以及與其他類型的比較等方面,以幫助讀者全面了解
    的頭像 發(fā)表于 11-21 16:25 ?726次閱讀

    python怎么定義空集合

    Python中,可以通過兩種方式來定義一個空集合: 使用大括號 {} 創(chuàng)建空集合 使用 set() 函數(shù)創(chuàng)建空集合 第一種方式是最常見的,直接使用大括號 {} 來創(chuàng)建一個沒有任何元素
    的頭像 發(fā)表于 11-21 16:20 ?4873次閱讀

    python處理重復值的方法

    處理重復值是數(shù)據(jù)處理中常見的任務之一。在Python中,有幾種有效的方法可以處理重復值,包括使用集合、字典和pandas庫等。 使用集合 集合數(shù)據(jù)結(jié)構(gòu)是
    的頭像 發(fā)表于 11-21 15:47 ?1184次閱讀

    python里item的用法

    item是Python中一個非常重要的概念,它可以用于多種數(shù)據(jù)結(jié)構(gòu)和算法的實現(xiàn)。在Python中,item通常用于表示一個集合或序列中的一個元素。本文將詳細介紹item的用法,并探討它在列表、字典
    的頭像 發(fā)表于 11-21 15:09 ?3234次閱讀

    Python 支持同步的推導式版本

    Python 廣泛地支持同步的推導式,允許使用簡單而簡潔的語法生成列表、字典和集合。我們提議為異步代碼實現(xiàn)類似的語法結(jié)構(gòu)。 為了說明可讀性的改善,請考慮下面的例子: result = [] async
    的頭像 發(fā)表于 10-31 14:37 ?257次閱讀