
深入解析Python中的集合類型操作符
1)標準類型操作符(所有的集合類型)
成員關系 (in, not in)
就序列而言,Python中的in和not in操作符決定某個元素是否是一個集合中的成員。
集合等價/不等價
等價/不等價被用于在相同或不同的集合之間做比較。兩個集合相等是指,對每個集合而言,當且僅當其中一個集合中的每個成員同時也是另一個集合中的成員。也可以說每個集合必須是另一個集合的一個子集, 即s <= t 和s>= t 的值均為真(True),或(s <= t and s>= t) 的值為真(True)。集合等價/不等價與集合的類型或集合成員的順序無關,只與集合的元素有關。
子集/超集
set用Python的比較操作符檢查某集合是否是其他集合的超集或子集?!靶∮凇狈枺?lt;、<=)用來判斷子集,“大于”符號(>、 >= )用來判斷超集?!靶∮凇?和 “大于”意味著兩個集合在比較時不能相等。等于號允許非嚴格定義的子集和超集。
set支持嚴格( < )子集和非嚴格 ( <= ) 子集,也支持嚴格( > )超集和非嚴格 ( >= )超集。只有當第一個集合是第二個集合的嚴格子集時,我們才稱第一個集合“小于”第二個集合。同理,只有當第一個集合是第二個集合的嚴格超集時,我們才稱第一個集合“大于”第二個集合。
對象值的比較
任何相同類型的對象都可以比較,格式為:a == b,在python2.3之前類型不具有布爾值,返回值為1 0;2.3版本之后返回只為 True False
對象身份的比較
obj1 is obj2 --obj 與obj2是同一個對象 return True False
obj1 is not obj2 --obj 與obj2是同一個對象 return True False
布爾類型--python中的與、或、非
布爾類型的優先級依次為:not
and
or
--實現功能為邏輯 非 與 或
標準類型的內建函數
cmp(obj1, obj2)--1>2 return i>0
1<2 return i<0
1==2 return i=0
repr(obj)/repr('obj')--返回一個對象的字符串表示
str(obj)--返回對象可讀性好的字符串表示
type(obj)--返回對象的類型
(2)集合類型操作符(所有的集合類型)
聯合( | )
聯合(union)操作和集合的 OR(又稱可兼析取(inclusive disjunction))其實是等價的,兩個集合的聯合是一個新集合,該集合中的每個元素都至少是其中一個集合的成員,即屬于兩個集合其中之一的成員。聯合符號有一個等價的方法:union()。
交集( & )
可以把交集操作比做集合的AND(或合取)操作。兩個集合的交集是一個新集合,該集合中的每個元素同時是兩個集合中的成員,即屬于兩個集合的成員。交集符號有一個等價的方法:intersection()。
差補/相對補集( – )
兩個集合(s 和 t)的差補或相對補集是指一個集合 C,該集合中的元素,只屬于集合 s,而不屬于集合 t。差符號有一個等價的方法:difference()。
對稱差分( ^ )
和其他的布爾集合操作相似,對稱差分是集合的XOR(又稱“異或” (exclusive disjunction))。兩個集合(s 和 t)的對稱差分是指另外一個集合C,該集合中的元素,只能是屬于集合 s 或者集合t的成員,不能同時屬于兩個集合。對稱差分有一個等價的方法:symmetric_difference()。
混合集合類型操作
如果左右兩個操作數的類型相同,既都是可變集合或不可變集合,則所產生的結果類型是相同的。但如果左右兩個操作數的類型不相同(左操作數是 set,右操作數是 frozenset,或相反情況),則所產生的結果類型與左操作數的類型相同 。
注意:加號不是集合類型的運算符。
>>> t | s
frozenset(['c', 'b', 'e', 'h', 'k', 'o', 'p', 's'])
>>> t ^ s
frozenset(['c', 'b', 'e', 'k', 'p'])
>>> s | t
set(['c', 'b', 'e', 'h', 'k', 'o', 'p', 's'])
>>> s ^ t
set(['p', 'b', 'e', 'k', 'c'])
(3)集合類型操作符(僅適用于可變集合)
(Union) Update ( |= )
這個更新方法從已存在的集合中添加(可能多個)成員,此方法和update()等價。
>>> s = set('cheeseshop')
>>> s |= set('pypi')
>>> s
set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y'])
保留/交集更新( &= )
保留(或交集更新)操作保留與其他集合的共有成員,此方法和 intersection_update()等價。
差更新 ( –= )
對集合s和t進行差更新操作s-=t,差更新操作會返回一個集合,該集合中的成員是集合s去除掉集合t中元素后剩余的元素。此方法
和difference_update()等價。
對稱差分更新( ^= )
對集合s和t進行對稱差分更新操作(s^=t),對稱差分更新操作會返回一個集合,該集合中的成員僅是原集合s或僅是另一集合t中的成員。此方法和symmetric_difference_update()等價。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25