国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

python集合是什么

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-02-23 17:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

python集合

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

這里面有兩個重點:

無序,

不重復

1. 創建集合

集合的創建有兩種方法

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

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

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

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

2. 增刪改查

增加元素

使用 add 函數可以往集合中傳入函數

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

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

這是接集合的例子

>>> 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 函數可以刪除集合中的元素

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

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

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

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

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

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

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

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

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

修改元素

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

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

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

查詢元素

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

但是我們可以查看集合的其他內容

比如,查看集合的長度

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

3. 集合運算

求合集

將兩個集合進行合并并去重,可以使用 union 函數,下面的示例中,由于 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 函數,下面的示例中, 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 函數

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

intersection 相似的還有一個 intersection_update 函數,它們的區別是,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 函數

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

symmetric_difference 相似的還有一個 symmetric_difference_update 函數,它們的區別是,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

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

    關注

    0

    文章

    9

    瀏覽量

    8263
  • python
    +關注

    關注

    57

    文章

    4876

    瀏覽量

    90025
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    安裝 Python VisionFive_GPIO失敗是哪里出了問題?

    盡管按照最新的文檔,我在安裝 VisionFive.gpio 包時仍然收到錯誤 sudo apt 安裝 libxml2-dev libxslt-dev python3 -m pip 安裝請求
    發表于 02-11 06:13

    沒有專利的opencv-python 版本

    所有 官方發布的 opencv-python 核心版本(無 contrib 擴展)都無專利風險——專利問題僅存在于 opencv-contrib-python 擴展模塊中的少數算法(如早期 SIFT
    發表于 12-13 12:37

    Termux中調試圣誕樹Python代碼

    在Termux中調試Python代碼(以圣誕樹立例)非常簡單,核心分為環境準備、代碼編寫、運行調試三個步驟,下面一步步教你操作: 一、環境準備(首次使用需做) Termux默認可能沒有Python
    發表于 12-09 09:02

    Python調用API教程

    兩個不同系統之間的信息交互。在這篇文章中,我們將詳細介紹Python調用API的方法和技巧。 一、用Requests庫發送HTTP請求 使用Python調用API的第一步是發送HTTP請求,通常
    的頭像 發表于 11-03 09:15 ?870次閱讀

    ??FourCastNet 3實現快速精準的大型集合天氣預報

    FourCastNet 3(FCN3)是 NVIDIA Earth-2 中最新的 AI 全球天氣預報系統。FCN3 首次完美地結合了概率預測能力、計算效率、頻譜保真度、集合校準和次季節
    的頭像 發表于 08-30 15:49 ?2251次閱讀

    termux調試python猜數字游戲

    用termux做一個猜數字游戲 下面是在Termux中創建猜數字游戲的步驟及完整實現方案,結合Python實現(最適配Termux環境): ? 一、環境準備(Termux基礎配置) 1.
    發表于 08-29 17:15

    termux如何搭建python游戲

    termux如何搭建python游戲 Termux搭建Python游戲開發環境的完整指南 一、Termux基礎環境準備 Termux是一款無需root即可在安卓設備上運行的Linux終端
    發表于 08-29 07:06

    python app不能運行怎么解決?

    ;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
    發表于 08-06 06:27

    基礎篇3:掌握Python中的條件語句與循環

    Python編程語言中,條件語句和循環是構成復雜邏輯和數據處理的基石。本篇基礎教程將幫助您深入了解Python中的條件語句和循環結構,讓您能夠更好地控制程序流程。 條件語句 條件語句允許程序根據
    發表于 07-03 16:13

    DLP4710EVM-LC燒入條紋集合,相機同步拍照時出現錯誤

    如圖所示,我將條紋圖寫入投影儀用于投影,當只有一個條紋集合時投影正常,因為一個集合最多投影7張圖片,而我需要投影22張; 當設置的條紋集合超過一個時,點擊連續投影,相機同步拍照時出現圖片中的的現象
    發表于 06-28 15:36

    如何破解GPU集群集合通信路徑的“黑盒”難題?

    集合通信庫(如NCCL、HCCL)的運行細節用戶完全無感知,形成“黑盒”狀態。EPS通過實時解析集合通信庫的底層運行狀態,將隱蔽的通信路徑、GPU與網卡狀態等信息可視化,并提供智能路由推薦,幫助用戶快速優化集群性能。
    的頭像 發表于 05-22 10:13 ?925次閱讀
    如何破解GPU集群<b class='flag-5'>集合</b>通信路徑的“黑盒”難題?

    python入門圣經-高清電子書(建議下載)

    此資料內容是一本針對所有層次的Python 讀者而作的Python 入門電子書。 全書分兩部分:第一部分介紹用Python 編程所必須了解的基本概念,包括matplotlib、NumPy
    發表于 04-10 16:53

    ?如何在虛擬環境中使用 Python,提升你的開發體驗~

    RaspberryPiOS預裝了Python,你需要使用其虛擬環境來安裝包。今天出版的最新一期《TheMagPi》雜志刊登了我們文檔負責人NateContino撰寫的一篇實用教程,幫助你入門
    的頭像 發表于 03-25 09:34 ?811次閱讀
    ?如何在虛擬環境中使用 <b class='flag-5'>Python</b>,提升你的開發體驗~

    零基礎入門:如何在樹莓派上編寫和運行Python程序?

    在這篇文章中,我將為你簡要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運行一個簡單的Python程序。什么是Python程序?
    的頭像 發表于 03-25 09:27 ?2032次閱讀
    零基礎入門:如何在樹莓派上編寫和運行<b class='flag-5'>Python</b>程序?

    Python在嵌入式系統中的應用場景

    你想把你的職業生涯提升到一個新的水平?Python在嵌入式系統中正在成為一股不可缺少的新力量。盡管傳統上嵌入式開發更多地依賴于C和C++語言,Python的優勢在于其簡潔的語法、豐富的庫和快速的開發周期,這使得它在某些嵌入式場景中非常有用,以下是
    的頭像 發表于 03-19 14:10 ?1492次閱讀