python-set集合類方法

来源:http://www.cnblogs.com/zhangyuxin/archive/2016/12/21/6208093.html
-Advertisement-
Play Games

s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])返回的是{11,22,33,44,‘Tom’,‘tony’,77,2.5}(註意:返回的並不是一個字典,只是告訴你這個集合中含有這些元素,所以每次返回的結果元素的順序可能是不一樣的) s2=set([11,22 ...


  s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])返回的是{11,22,33,44,‘Tom’,‘tony’,77,2.5}(註意:返回的並不是一個字典,只是告訴你這個集合中含有這些元素,所以每次返回的結果元素的順序可能是不一樣的)

  s2=set([11,22,33,44,'Tom','tony',11,55,66,])返回的是{11,22,33,44,‘Tom’,‘tony’,55,66}(註意:返回的並不是一個字典,只是告訴你這個集合中含有這些元素,所以每次返回的結果元素的順序可能是不一樣的)

 

add(...)
  Add an element to a set.
  This has no effect if the element is already present.(如果元素已存在,則添加無效。就是說明set是一個沒有重覆元素的集合。)

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

       s1.add('jimi')

     print(s1)

  結果:{33, 'tony', 2.5, 'jimi', 11, 44, 77, 22, 'Tom'}(註意:set是一個無序的集合,可能每次運行的結果的順序不一樣。

 

difference(...)
  Return the difference of two or more sets as a new set.(求主差集,並會生成一個新的集合
  (i.e. all elements that are in this set but not the others.)(註意:s1.difference(s2)表示的是找出s1中有而s2中沒有的元素,並生成一個新的集合。s2.difference(s1)表示的是找出s2中有而s1中沒有的元素,並生成一個新的集合。

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

     s2=set([11,22,33,44,'Tom','tony',11,55,66,])

     s3=s1.difference(s2)

     s4=s2.difference(s1)

     print(s3)

     print(s4)

  結果:{2.5, 77}

     {66, 55}

 

difference_update(...)
  Remove all elements of another set from this set.(從這個集合中移除另一組的所有元素。註意:s1.difference_update(s2)表示的是移除s1中兩者共有的元素,保留不共有的元素,是對s1的修改而不是生成一個新列表。    s2.difference_update(s1)表示的是移除s2中兩者共有的元素,保留不共有的元素,是對s2的修改而不是生成一個新列表。

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

     s2=set([11,22,33,44,'Tom','tony',11,55,66,])

     s1.difference_update(s2)

     print(s1)

  結果:{2.5, 77}

 

discard(...)
  Remove an element from a set if it is a member.(移除集合中的成員(元素))
  If the element is not a member, do nothing.(如果集合中沒有這個成員,則不進行任何操作,也不會報錯,這與Remove有區別。

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

     s1.discard(2.5)

  結果:{33, 'Tom', 11, 44, 77, 'tony', 22}

 

intersection(...)
  Return the intersection of two sets as a new set.(生成兩個集合的交集並生成一個新的列表
  (i.e. all elements that are in both sets.)

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

     s2=set([11,22,33,44,'Tom','tony',11,55,66,])

     s5=s1.intersection(s2)

     s6=s2.intersection(s1)

     print(s5)

     print(s6)

  結果:{33, 'Tom', 11, 44, 22, 'tony'}

     {33, 11, 44, 'tony', 'Tom', 22}

 

intersection_update(...)
  Update a set with the intersection of itself and another.(功能和intersection(...)是一樣的,但是s1.intersection(s2)在執行的時候是對原來的集合s1的修改,並不會生成一個新的集合

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

     s2=set([11,22,33,44,'Tom','tony',11,55,66,])

     s1.intersection(s2)

     s2.intersection(s1)

     print(s1)

     print(s2)

  結果:{33, 'Tom', 11, 44, 22, 'tony'}

     {33, 11, 44, 'tony', 'Tom', 22}

 

isdisjoint(...)
  Return True if two sets have a null intersection.(判斷兩個集合是否有交集,如果有則返回False,如果沒有則返回True

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

     s2=set([100,50,500,])

     print(s1.isdisjoint(s2))

  結果:True

 

issubset(...)
  Report whether another set contains this set.(判斷一個集合中的所有元素是否在另個集合中s1.issubset(s2)表示的是s1中的每個元素都在s2中,註意與s1.issuperset(s2)的區別。  

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

     s2=set([11,22,33,44,'Tom','tony',11,])

     s3=([11,22,33,44,'Tom','tony',11,55,66])

     s1.issubset(s2)

     s1.issubset(s3)

     print(s1.issubset(s2))

     print(s1.issubset(s3))

  結果:True

     False

 

issuperset(...)
  Report whether this set contains another set.(判斷一個集合中的所有元素是否在另個集合中,s1.issubset(s2)表示的是s2中的每個元素都在s1中,註意與s1.issubset(s2)的區別。  

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

     s2=set([11,22,33,44,'Tom','tony',11,])

     s3=([11,22,33,44,'Tom','tony',11,55,66])

     s1.issuperset(s2)

     s1.issuperset(s3)

     print(s1.issuperset(s2))

     print(s1.issuperset(s3))

  結果:True

     False

 

pop(...)
  Remove and return an arbitrary set element.(隨機刪除一個元素)
  Raises KeyError if the set is empty.(如果集合為空,執行pop時會提醒KeyError)

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

     s1.pop()

  結果:{33, 'Tom', 2.5, 11, 44, 77, 22}

 

remove(...)
  Remove an element from a set; it must be a member.(移除集合中的成員(元素),這個元素必須在這個集合中)
  If the element is not a member, raise a KeyError.如果集合中沒有這個成員,則會提示keyError,這與discard有區別。

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

     s1.remove(2.5)

     s1.remove('jimi')

  結果:{33, 'Tom', 'tony', 11, 44, 77, 22}

     KeyError: 'jimi'

 

symmetric_difference(...)
  Return the symmetric difference of two sets as a new set.(生成一個新的列表,這個列表是兩個列表中不重覆元素的集合,s1.symmetric_difference(s2)表示s1中不在s2中的元素和s2中不在s1中的元素的集合

  (i.e. all elements that are in exactly one of the sets.)

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

     s2=set([11,22,33,44,'Tom','tony',11,55,66,])

     s4=s2.symmetric_difference(s1)

     print(s4)

  結果:{2.5, 66, 77, 55}

 

symmetric_difference_update(...)
  Update a set with the symmetric difference of itself and another.(對一個列表進行修改,兩個列表中不重覆元素的集合,s1.symmetric_difference(s2)表示s1中不在s2中的元素和s2中不在s1中的元素的集合)

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

     s2=set([11,22,33,44,'Tom','tony',11,55,66,])

     s1.symmetric_difference_update(s2)

     print(s1)

  結果:{2.5, 66, 77, 55}

 

union(...)
  Return the union of sets as a new set.(生成一個新集合,改列表是兩個列表的所以成員(元素)的集合,s1.union(s2)表示的是包含s1,s2所有元素的新集合
  (i.e. all elements that are in either set.)

  例如:s1=set([11,22,33,44,'Tom','tony',11,77,2.5,])

     s2=set([11,22,33,44,'Tom','tony',11,55,66,])

     s3=s1.union(s2)

     print(s3)

  結果:{33, 2.5, 66, 'Tom', 11, 44, 77, 55, 22, 'tony'}

 

update(...)
  Update a set with the union of itself and others.(將一個集合更新到另一個集合,s1.update(s2)表示將s2中的所有元素放到s1中,完成對s1的更新修改)

  例如:s1=set([100,50,])

      s2=set([11,22,33,44,'Tom','tony',11,55,66,])

     s1.update(s2)

     print(s1)

  結果:{'tony', 33, 66, 100, 'Tom', 11, 44, 50, 22, 55}


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Java是一門面向對象的語言,那麼我們寫程式的時候最經常操作的便是對象了,為此,Java提供了一些專門用來處理對象的類庫,這些類庫的集合我們稱之為集合框架。Java集合工具包位於Java.util包下,包含了很多常用的數據結構,如數組、鏈表、棧、隊列、集合、哈希表等。學習Java集合框架下大致可以分 ...
  • 首先在頁面中我們直接寫一個標簽,然後給標簽定義一個id,這裡我們用什麼標簽都可以,我們就用<span></span>演示吧, 代碼如下: 上面我們實例化了一個Clock的對象,這裡我們就在外部定義一個Clock的類, 獲取當前時間併進行時間的格式化,代碼如下: 之後我們在頁面頭部中引入該js就好了: ...
  • Containers in Depth ___ Full container taxonomy You can usually ignore any class that begins with "Abstract." Filling containers This fill( ) just dup ...
  • HTML翻譯為超文本標記語言<標簽名>內容</標簽名>靜態網頁動態網頁的區別是看是否從數據中提取數據一般網頁由幾部分組分組成<html>開始標簽 <head>頭,即為網頁上的控制信息 <title>頁面上的標題</title> </head> <body,其屬性一般有bgcolor頁面背景色,tex ...
  • (1)首先要修改JDK中JMX服務的配置文件,以獲得相應的許可權: 進入$JAVA_HOME所在的根目錄的/jre/lib/management子目錄下, a. 將jmxremote.password.template文件複製為jmxremote.password b. 調整jmxremote.acc ...
  • 有想哪裡知道有做六合彩投註網站系統建設開發的嗎,我這邊可以做六合彩投註系統,如果需要的朋友可以私聊一下。 新版六合彩投註網站系統源碼 (測試完整可商業運行) 帶新開獎結果》》》》》 網站系統可以支持代理開設,股東發展,普通會用等常用的功能。 內附說明。資料庫文件 hs001 修改資料庫連接 文件夾 ...
  • 通過前面的介紹,我們已經能夠看到管理員界面並對Solr形成了一個感性的認識。本篇將在物理上深入瞭解Solr的安裝目錄結構和Solr示例的主目錄結構。 安裝目錄結構 Solr 6.3.0安裝文件夾裡面包含很多內容。這裡挑選一些重要的目錄進行說明。目錄結構如下: bin:大量的Solr控制台管理工具存在 ...
  • 談起 Hibernate 應該得知道 Gavin King 大叔,他構建了 Hibernate ,並將其捐獻給了開源社區。 Hibernate 對象關係映射解決方案,為面向對象的領域模型到傳統的關係型資料庫的映射,提供了一個使用方便的框架。 Hibernate 的設計目標是將軟體開發人員從大量相同的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...