集合的特點
集合是乙個無序的,不重複的陣列組合
1、去重,找出2個列表裡重複的項。把乙個列表變成集合就自動去重了。
2、關係測試,測試兩組資料之前的交集、差集、並集等關係
常用操作:
set(字串),就把列表轉換成集合。注意集合的大括號組成{},像字典,但是不是
這種寫法,是直接把列表變成集合:
取集合的交集:
集合1.intersection(集合2)
取集合的並集:
集合1.union(集合2)
取兩個集合的差集:
集合1.difference(集合2)=集合1在集合2裡沒有的數值
判斷集合1是不是集合2的子集:
集合1.issubset(集合2)
判斷集合1是不是集合2的父集:
集合1.issuperset(集合2)
反向差集(對稱差集):把兩個集合裡都有的項,去除了。
集合1.symmetric_difference(集合2)
如果兩個集合沒有交集,那麼返回為true
集合1.isdisjoint(集合2)
除了用英文單詞來表示這些集合的關係,還可以用字元來表達
求交集:交集1 & 交集2
求並集: 集合1 | 集合2
求差集:集合1-集合2,在集合1裡不在集合2
求對稱差集:集合1 ^ 集合2
增刪改查:
增加:集合.add(x) #新增1項
集合.update #新增多項
刪除:集合.remove(x),指定刪除x,如果x不存在會報錯
集合.pop(x)隨機刪除乙個數值,並返回這個數值。
集合.discard(x),刪除指定乙個值x,如果x不存在,不會報錯。
集合的長度:
len(集合)
測試x是否是s的成員:字串,列表,字典,集合,全部都是這麼寫!
x in s
測試x是否不是s的成員:
x not in s
集合的淺複製:
集合.copy()
返回set集合的乙個淺複製
等價操作符
說明所有集合型別
len(s)集合基數:集合s中元素個數
set([obj])可變集合工廠函式:ojb必須是支援迭代的,由obj中的元素建立集合,否則建立乙個空集合
frozenset([obj])不可變集合工廠函式:執行方式好set()方法相同,但它返回的是不可變集合
obj in s成員測試
obj not in s非成員測試
s == t等價測試
s != t不等價測試
s < t(嚴格意義上)子集測試
s.issubset(t)s <= t子集測試
s > t(嚴格意義上)超集測試
s.issuperset(t)s >= t超集測試
s.union(t)s | t合併操作
s.intersec-tion(t)s & t交集操作
s.difference(t)s – t差分操作
s.symmetric_fifference(t)s ^ t對稱差分操作
s.copy()
賦值操作:返回s的(淺複製)副本
僅適用於可變集合
s.update(t)s |= t
(union)修改操作:將t中的成員新增s
s.intersection_update(t)s &= t
交集修改操作:s中僅包括s和t中共有的成員
s.difference_update(t)s -= t
差修改操作:s中僅包括屬於s但不屬於t的成員
s.symmetric_difference_ update(t)s ^= t
對稱差分修改操作:s中包括僅屬於s或僅屬於t的成員
s.add(obj)
加操作:將obj新增到s
s.remove(obj)
刪除操作
s.discard(obj)
丟棄操作:remove()的友好版本,如果s中存在ojb,從s中刪除它
s.pop()
pop操作:移除並返回s中的任意乙個值
s.clear()
清除操作:移除s中的所有元素
集合的使用
要求 1 addrecord userid,projectid,price 表示使用者userid 給工程 projectid 投標 price。若記錄中有userid 給工程projectid 投標,則不加入該記錄 2 updaterecord userid,projectid,price 表示更...
集合的使用
優先順序 not and or 從左至右依次計算。and 且 前後都是真的 or 或 有乙個為真 就為真 not 非 取反 同等優先條件下 從左至右依次運算 x and y 如果x為真 則值為y 否則為 x 集合是無序的,不重複的資料集合,他裡面的元素是可雜湊的 不可變型別 但是集合本身是不可雜湊 ...
oracle 集合的使用
每組查詢均能得到其結果集,若需將多個查詢結果合併成乙個結果集,則可利用集合運算來實現。如並集 union 並集且不去除重複行 unoin all 交集 intersect 差集 minus 集合命令的目的是將兩個 含以上 sql語句產生的結果合併。由於需要將兩個 含以上 資料集合並 因此字段數量必須...