慢慢体会到,在学习或者解决一个问题的时候,首先要尽量理解透问题本身涉及到的相关概念,

再去进一步分析解决具体问题,即可事半功倍。

 比如,对于编程语言里面的集合问题,以python语言为例(在此顺便复习下关于集合本身的东西)。

而集合本身在数学领域具有无可比拟的特殊重要性。在数学学科上集合的分类为:

空集

  有一类特殊的集合,它不包含任何元素,如{x|x∈R x²+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的一个浅复制