python set

  1. python的set和其他語言類似,?是一個無序不重復元素集,?基本功能包括關系測試和消除重復元素.?集合對象還支持union(聯合),?intersection(交),?difference(差)和sysmmetric?difference(對稱差集)等數學運算.??
  2. ??
  3. sets?支持?x?in?set,?len(set),和?for?x?in?set。作為一個無序的集合,sets不記錄元素位置或者插入點。因此,sets不支持?indexing,?slicing,?或其它類序列(sequence-like)的操作。??
  4. ??
  5. ???
  6. ??
  7. 下面來點簡單的小例子說明把。??
  8. ??
  9. >>>?x?=?set('spam')??
  10. >>>?y?=?set(['h','a','m'])??
  11. >>>?x,?y??
  12. (set(['a',?'p',?'s',?'m']),?set(['a',?'h',?'m']))??
  13. ??
  14. 再來些小應用。??
  15. ??
  16. >>>?x?&?y?#?交集??
  17. set(['a',?'m'])??
  18. ??
  19. >>>?x?|?y?#?并集??
  20. set(['a',?'p',?'s',?'h',?'m'])??
  21. ??
  22. >>>?x?-?y?#?差集??
  23. set(['p',?'s'])??
  24. ??
  25. 記得以前個網友提問怎么去除海量列表里重復元素,用hash來解決也行,只不過感覺在性能上不是很高,用set解決還是很不錯的,示例如下:??
  26. ??
  27. >>>?a?=?[11,22,33,44,11,22]??
  28. >>>?b?=?set(a)??
  29. >>>?b??
  30. set([33,?11,?44,?22])??
  31. >>>?c?=?[i?for?i?in?b]??
  32. >>>?c??
  33. [33,?11,?44,?22]??
  34. ??
  35. 很酷把,幾行就可以搞定。??
  36. ??
  37. 1.8 集合???
  38. ???
  39. 集合用于包含一組無序的對象。要創建集合,可使用set()函數并像下面這樣提供一系列的項:??
  40. ??
  41. ???
  42. ??
  43. s?=?set([3,5,9,10])??????#創建一個數值集合??
  44. ??
  45. t?=?set("Hello")?????????#創建一個唯一字符的集合??
  46. ??
  47. ???
  48. ??
  49. 與列表和元組不同,集合是無序的,也無法通過數字進行索引。此外,集合中的元素不能重復。例如,如果檢查前面代碼中t集合的值,結果會是:??
  50. ??
  51. ???
  52. ??
  53. >>>?t??
  54. ??
  55. set(['H',?'e',?'l',?'o'])??
  56. ??
  57. ???
  58. ??
  59. 注意只出現了一個'l'。??
  60. ??
  61. 集合支持一系列標準操作,包括并集、交集、差集和對稱差集,例如:??
  62. ??
  63. ???
  64. ??
  65. a?=?t?|?s??????????#?t?和?s的并集??
  66. ??
  67. b?=?t?&?s??????????#?t?和?s的交集??
  68. ??
  69. c?=?t?–?s??????????#?求差集(項在t中,但不在s中)??
  70. ??
  71. d?=?t?^?s??????????#?對稱差集(項在t或s中,但不會同時出現在二者中)??
  72. ??
  73. ???
  74. ??
  75. 基本操作:??
  76. ??
  77. t.add('x')????????????#?添加一項??
  78. ??
  79. s.update([10,37,42])??#?在s中添加多項??
  80. ??
  81. ???
  82. ??
  83. 使用remove()可以刪除一項:??
  84. ??
  85. t.remove('H')??
  86. ??
  87. ???
  88. ??
  89. len(s)??
  90. set?的長度??
  91. ??
  92. x?in?s??
  93. 測試?x?是否是?s?的成員??
  94. ??
  95. x?not?in?s??
  96. 測試?x?是否不是?s?的成員??
  97. ??
  98. s.issubset(t)??
  99. s?<=?t??
  100. 測試是否?s?中的每一個元素都在?t?中??
  101. ??
  102. s.issuperset(t)??
  103. s?>=?t??
  104. 測試是否?t?中的每一個元素都在?s?中??
  105. ??
  106. s.union(t)??
  107. s?|?t??
  108. 返回一個新的?set?包含?s?和?t?中的每一個元素??
  109. ??
  110. s.intersection(t)??
  111. s?&?t??
  112. 返回一個新的?set?包含?s?和?t?中的公共元素??
  113. ??
  114. s.difference(t)??
  115. s?-?t??
  116. 返回一個新的?set?包含?s?中有但是?t?中沒有的元素??
  117. ??
  118. s.symmetric_difference(t)??
  119. s?^?t??
  120. 返回一個新的?set?包含?s?和?t?中不重復的元素??
  121. ??
  122. s.copy()??
  123. 返回?set?“s”的一個淺復制??
  124. ??
  125. ??
  126. 請注意:union(),?intersection(),?difference()?和?symmetric_difference()?的非運算符(non-operator,就是形如?s.union()這樣的)版本將會接受任何?iterable?作為參數。相反,它們的運算符版本(operator?based?counterparts)要求參數必須是?sets。這樣可以避免潛在的錯誤,如:為了更可讀而使用?set('abc')?&?'cbs'?來替代?set('abc').intersection('cbs')。從?2.3.1?版本中做的更改:以前所有參數都必須是?sets。??
  127. ??
  128. 另外,Set?和?ImmutableSet?兩者都支持?set?與?set?之間的比較。兩個?sets?在也只有在這種情況下是相等的:每一個?set?中的元素都是另一個中的元素(二者互為subset)。一個?set?比另一個?set?小,只有在第一個?set?是第二個?set?的?subset?時(是一個?subset,但是并不相等)。一個?set?比另一個?set?打,只有在第一個?set?是第二個?set?的?superset?時(是一個?superset,但是并不相等)。??
  129. ??
  130. 子?set?和相等比較并不產生完整的排序功能。例如:任意兩個?sets?都不相等也不互為子?set,因此以下的運算都會返回?False:a<b,?a==b,?或者a>b。因此,sets?不提供?__cmp__?方法。??
  131. ??
  132. 因為?sets?只定義了部分排序功能(subset?關系),list.sort()?方法的輸出對于?sets?的列表沒有定義。??
  133. ??
  134. ??
  135. 運算符??
  136. ???運算結果??
  137. ??
  138. hash(s)??
  139. ???返回?s?的?hash?值??
  140. ??
  141. ??
  142. 下面這個表列出了對于?Set?可用二對于?ImmutableSet?不可用的運算:??
  143. ??
  144. 運算符(voperator)??
  145. 等價于??
  146. 運算結果??
  147. ??
  148. s.update(t)??
  149. s?|=?t??
  150. 返回增加了?set?“t”中元素后的?set?“s”??
  151. ??
  152. s.intersection_update(t)??
  153. s?&=?t??
  154. 返回只保留含有?set?“t”中元素的?set?“s”??
  155. ??
  156. s.difference_update(t)??
  157. s?-=?t??
  158. 返回刪除了?set?“t”中含有的元素后的?set?“s”??
  159. ??
  160. s.symmetric_difference_update(t)??
  161. s?^=?t??
  162. 返回含有?set?“t”或者?set?“s”中有而不是兩者都有的元素的?set?“s”??
  163. ??
  164. s.add(x)??
  165. ??
  166. 向?set?“s”中增加元素?x??
  167. ??
  168. s.remove(x)??
  169. ??
  170. 從?set?“s”中刪除元素?x,?如果不存在則引發?KeyError??
  171. ??
  172. s.discard(x)??
  173. ??
  174. 如果在?set?“s”中存在元素?x,?則刪除??
  175. ??
  176. s.pop()??
  177. ??
  178. 刪除并且返回?set?“s”中的一個不確定的元素,?如果為空則引發?KeyError??
  179. ??
  180. s.clear()??
  181. ??
  182. 刪除?set?“s”中的所有元素??
  183. ??
  184. ??
  185. 請注意:非運算符版本的?update(),?intersection_update(),?difference_update()和symmetric_difference_update()將會接受任意?iterable?作為參數。從?2.3.1?版本做的更改:以前所有參數都必須是?sets。??
  186. ??
  187. 還請注意:這個模塊還包含一個?union_update()?方法,它是?update()?方法的一個別名。包含這個方法是為了向后兼容。程序員們應該多使用?update()?方法,因為這個方法也被內置的?set()?和?frozenset()?類型支持。

轉載于:https://www.cnblogs.com/nkwy2012/p/6387179.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255416.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255416.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255416.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【bug修復】解決ValueError: Tensor(“Variable:0“ dtype=float32_ref) must be from the same graph as Tensor(“R

bug:描述 在進行tensorflow進行搭建CNN網絡時&#xff0c;在定義CNN的py文件中調用cnn模型&#xff0c;運行正常&#xff0c;但是在其他py文件中進行時就出現問題 ValueError: Tensor(“Variable:0” dtypefloat32_ref) must be from the same graph as Tensor(“Reshape:0”,…

XML —— DTD介紹

一、DTD介紹 Document Type Definition&#xff1b; DTD是一種XML的約束方式&#xff0c;除了此種約束方式外&#xff0c;還有XSchema&#xff0c;XSchema比DTD的約束能力還要強&#xff0c;因此DTD正在逐漸淘汰&#xff1b; DTD的目的就是約束XML標簽的寫法&#xff1b;比如在…

error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

更新的軟件可以解決 TortoiseGit-preview-2.5.7.0-20180127-b2d00f8-64bit.msi和Git-2.16.2-64-bit.exe。 鏈接地址為&#xff1a; https://github.com/git-for-windows/git/releases/download/v2.16.2.windows.1/Git-2.16.2-64-bit.exe https://download.tortoisegit.org/tgi…

Linux 圖片傳輸功能c/c++(初版)

由于深度學習任務的需要&#xff0c;要在程序里面嵌入一個module。 這個module 的功能是接收來自ios客戶端的圖片。并且傳送給深度學習分類器進行處理。 于是看了看各種各樣的 module 實現方案。 先是用IO函數把圖片以數組的方式存起來。 再和服務器建立連接&#xff0c;socket…

Val編程-val系列編程思想

利用Val語言可以編寫出各種各樣的應用程序。正如windows phone面臨的窘境一樣&#xff0c;受眾太小&#xff0c;市場不大。應用程序不多&#xff0c;所以也談不上成熟。國內的應用程序基本上就是簡單的小程序&#xff0c;談不上什么編程思想。國外許多都是基于kernel的而衍生出…

Celery的實踐指南

Celery的實踐指南celery原理&#xff1a;celery實際上是實現了一個典型的生產者-消費者模型的消息處理/任務調度統&#xff0c;消費者(worker)和生產者(client)都可以有任意個&#xff0c;他們通過消息系統&#xff08;broker&#xff09;來通信。典型的場景為&#xff1a;客戶…

【pyqt5學習】——bug修復,利用qt資源庫qrc文件進行背景圖像設置,不顯示圖像

目錄 bug描述 bug分析 bug解決 bug描述 利用下面文章的方法進行資源設置后&#xff0c;有的顯示了有的沒有顯示 【pyqt5學習】——pyqt5中.qrc資源文件的創建與編寫_有情懷的機械男的博客-CSDN博客_python qrc目錄一、說明二、安裝pyqt5以及相關工具&#xff08;pyqt5、pyuic…

Datalore:用于機器學習可視化的新Web方案!

前不久&#xff0c;JetBrains團隊發布了Datalore&#xff0c;這是一款基于云的web應用程序&#xff0c;用于構建機器學習模型并在Python中創建豐富的可視化。最新的測試版本旨在簡化構建機器學習模型的流程&#xff0c;并幫助開發人員進行數據分析。由于Datalore的智能編碼輔助…

Val3語言介紹

Val3語言是一門專門針對特定工業機器人的一門語言。在墻內有關這方面的介紹非常的少。在墻外維基百科上有一篇詳細介紹的,有空FQ摘抄在這里。 Val3是使用XML格式。可以使用XML編輯器來進行編寫VAL3的程序&#xff0c;可直接在模擬器上或者示教盒上編程&#xff0c;一般推薦使用…

網絡層相關問題

1.說一下網絡層的總體結構。 2.有沒有看過源碼&#xff1f; A.繼承Request   B.打日志   C.修改參數 3.說一下Volley整體結構。 4.有了解過OkHttp嗎&#xff1f; 5.說一下OkHttp和Volley的區別&#xff1f;轉載于:https://www.cnblogs.com/jarvisyin/p/6389553.html

CSS魔法堂:重拾Border之——圖片作邊框

前言 當CSS3推出border-radius屬性時我們是那么欣喜若狂啊&#xff0c;一想到終于不用再添加額外元素來模擬圓角了&#xff0c;但發現border-radius還分水平半徑和垂直半徑&#xff0c;然后又發現border-top-left/right-radius的水平半徑之和大于元素寬度時&#xff0c;實際值會…

共享內存簡介和mmap 函數

一、共享內存簡介 共享內存區是最快的IPC形式&#xff0c;這些進程間數據傳遞不再涉及到內核&#xff0c;換句話說是進程不再通過執行進入內核的系統調用來傳遞彼此的數據。 即每個進程地址空間都有一個共享存儲器的映射區&#xff0c;當這塊區域都映射到相同的真正的物理地址空…

【pyqt5學習】——QToolTip,QLabel控件,伙伴關系

目錄 0、學習資源 1、給控件設置提示信息——QToolTip 2、QLabel控件&#xff08;顯示圖像、設置超鏈接、信號綁定&#xff09; 3、QLabel伙伴關系 1&#xff09;代碼 2&#xff09;效果 3&#xff09;知識點addWidget 0、學習資源 PyQt5教程&#xff0c;來自網易云課堂…

Hello IT

從高中的計算機課開始學習如何按下開機鍵&#xff0c;如何上網&#xff0c;如何背誦五筆字根&#xff0c;再到大學中如何使用office,利用C編碼做算法&#xff0c;到現在IT中的偽一員&#xff0c;時間算起來也不短&#xff0c;然正在入門是在2010年8月杭州參加嵌入式培訓&#x…

ARM指令集2

ARM指令集2 ARM微處理器支持加載/存儲指令用于在寄存器和存儲器之間傳送數據&#xff0c;加載指令用于將存儲器中的數據傳送到寄存器&#xff0c;存儲指令則完成相反的操作。 LDR指令&#xff08;與MOV有區別&#xff0c;MOV只能操作通用寄存器&#xff09; LDR指令格式為&…

SylixOS中select原理及使用分析

2019獨角獸企業重金招聘Python工程師標準>>> 1. select接口簡介 1.1 select接口使用用例 select是操作系統多路I/O復用技術實現的方式之一。 多路I/O復用技術大致使用場景為&#xff1a;構造一張感興趣的文件描述符列表&#xff0c;然后調用多路復用的IO接口&#x…

【pyqt5學習】——QLineEdit學習(回顯模式)

目錄 1、回顯模式 2、成果顯示 3、知識點 1&#xff09;FormLayout布局添加addRow方法 2&#xff09;在輸入框顯示灰色提示字體&#xff0c;輸入內容時消失setPlaceholderText 3&#xff09;設置回顯模式setEchoMode 4、完整代碼 1、回顯模式 QLineEdit控件的主要功能是輸…

有關機械手臂控制中的兩個重要輸入參數

1.在機械手臂中有兩個重要參數。一個是編碼器的值&#xff0c;另外一個是馬達的電流值。根據這兩個可以獲得機械手臂的運動學&#xff0c;動力學的一些數據。第一重要特征參數 是DH參數&#xff0c;另外一個就是每個軸的質心參數。

MySQL的權限分配

MySQL 賦予用戶權限命令的簡單格式可概括為&#xff1a;grant 權限 on 數據庫對象 to 用戶&#xff0c;如 GRANT PRIVILEGES ON datebase.* to user% IDENTIFIED by passwd;一、給表數據賦權 grant 普通數據用戶&#xff0c;查詢、插入、更新、刪除 數據庫中所有表數據的權利。…

用HttpURLConnection發送http請求

//發送http請求try {//1.使用網址構造一個URL對象 URL url new URL(path);//2.獲取連接對象 HttpURLConnection conn (HttpURLConnection) url.openConnection();//3.設置一些屬性 //設置請求方式&#xff0c;注意大寫conn.setRequestMethod("GET");//設置請求超時…