1. 程式人生 > >python3.6 集合筆記(一)

python3.6 集合筆記(一)

python 集合

慢慢體會到,在學習或者解決一個問題的時候,首先要盡量理解透問題本身涉及到的相關概念,

再去進一步分析解決具體問題,即可事半功倍。

比如,對於編程語言裏面的集合問題,以python語言為例(在此順便復習下關於集合本身的東西)。

而集合本身在數學領域具有無可比擬的特殊重要性。在數學學科上集合的分類為:

空集

有一類特殊的集合,它不包含任何元素,如{x|x∈R x2+1=0} ,稱之為空集,記為?

子集

設S,T是兩個集合,如果S的所有元素都屬於T ,即技術分享圖片 則稱S是T的子集,記為技術分享圖片

相等

如果兩個集合S和T的元素完全相同,則稱S與T兩個集合相等,記為S=T;

並集

由所有屬於集合A或屬於集合B的元素所組成的集合,記作A∪B(或B∪A),讀作“A並B”

(或“B並A”),即A∪B={x|x∈A,或x∈B}。並集越並越多;

交集

由屬於A且屬於B的相同元素組成的集合,記作A∩B(或B∩A),讀作“A交B”

(或“B交A”),即A∩B={x|x∈A,且x∈B}。交集越交越少;

補集

相對補集:由屬於A而不屬於B的元素組成的集合,稱為B關於A的相對補集,記作A-B或A\B;

絕對補集:A關於全集合U的相對補集稱作A的絕對補集,記作A'或?u(A)或~A;

冪集

有集合A,由集合A所有子集組成的集合,稱為集合A的冪集


下面是python3.6.3版本集合相關的常用操作,順便提筆記下來

import sys,os
print(sys.version) #3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)]

s = set([1,3,5,8,4]) #創建一個數值集合

t = set("Hello") #創建一個唯一字符的集合

a = t | s # t 和 s 的並集
b = t & s # t 和 s 的交集
c = t - s # 差集(在t中,但不在s中)
d = t ^ s # 對稱差集(在t或者s中,但不會同時都存在)

##basic operation
t.add('x') #adding

s.update([100,200,300]) #在s中添加多項

t.remove('H') #刪除一項

len(s) #集合長度

'x' in s #測試x是不是s的成員

'x' not in s #測試x

s.issubset(t) #s中的每個元素都在t中
s <= t

s.issubset(t) #t中的每個元素都在s中
s >= t

s.union(t) # 返回一個新的set,包含s和t中的每一個元素
s | t

s.intersection(t) #返回一個新的set,包含s和t中的公共元素
s & t

s.difference(t) #返回一個新的set,包含s中有但是t中沒有的元素
s - t

s.symmetric_difference(t) #返回一個新的set,包含s和t中不重復的元素
s ^ t

s.copy() #返回set s的一個淺復制




python3.6 集合筆記(一)