文章目录
1.1集合的创建
使用{}
或是set
函数创建集合,如果要创建集合则只能使用set
函数
集合中不能包含有重复值元素。如果创建集合或向集合中插入元素时,指定的元素具有重复值,则集合自动去除重复的元素。
创建集合例子
s = set(23,37,12,37,28)
print("s的值为:",s)
s的值为:{28,12,37,23}
1.2插入集合元素
集合中提供了两种插入元素的方法,分别是add和update
s.add(x)作用是把x作为一个新的元素插入到集合中,其中x必须是一个可哈希对象 |
---|
s,update(x):作用是把x差分成多个元素后插入到集合中,x必须是可迭代对象 |
add方法和update方法的例子
s1 = set([1,2]) #创建集合对象并赋给变量s1
s2 = set([1,2]) #创建集合对象并赋给变量s2
s1.add('Python') #使用add方法向s1集合中插入元素"Python"
s2.update("python")
print("s1的值为:",s1)
print("s2的值为:",s2)
s1的值为:{1,2,“Python”}
s2的值为:{1,2,“p”,“y”,“t”,“h”,“o”,“n”}
1.3集合的运算
集合中提供了用于集合运算的方法,如交、并、差、堆对称差:
|s1.intersection(s2):
其作用是计算s1和s2的交集并返回。intersection方法不会修改s1和s2本身的值|
|–|–|
|s1.union(s2):
其作用是计算s1和s2的并集
并返回。union方法不会修改s1和s2本身的值|
||
|s1.intersection(s2):
q其作用是计算s1和s2的差集
并返回,差集是指包含在s1但不包含在s1但不包含在s2中的元素组成的集
。difference方法不会修改s1和s2本身的值|
|s1.symmetruc_difference(s2):
其作用是计算s1和s2的对称差集
并返回,对称差集是指由包含在s1中或包含在s2中的元素组成的集合symmetruc_difference
方法不会修改s1和s2本身值|
集合运算的例子
s1=set([1,2,3])
s2 = set([2,3,4])
s3 = s1.intersection(s2) #{2,3}
s4 = s1.union(s2) #{1,2,3,4}
s5 = s1.difference(s2) #{1}
s6 = s1.symmetric_difference(s2) #{1,4}
1.4 子集和父集
集合中提供了用于判断一个集合是否是另一个集合子集(父集)的方法
|s1.issubset(s2):
其作用是判断s1是否是s2的自己
。如果s1是s2的子集,则返回True;否则返回False。|
|–|–|
|s1.issuperset(s2):
其作用是判断s1是否是s2的父集
。如果s1是s2的父集,则会返回True;否则返回False。|
s1 = set([1,2,3,4])
s2 = set([2,3,4,5])
s3 = set([1,3])
print("s3是s1的子集:",s3.issubset(s1)) #True
print("s1是s3的父集:",s3.issuperset(s1)) #True
print("s3是s2的子集:",s3.issubset(s1)) #Flase
print("s2是s3的父集:",s3.issuperset(s1)) #False
1.5 列表、元组、字典、集合的区别
数据结构 | 是否可变 | 是否重复 | 是否有序 | 定义符号 |
---|---|---|---|---|
列表 | 可变 | 可重复 | 有序 | [ ] |
元组 | 不可变 | 可重复 | 有序 | ( ) |
字典 | 可变 | 可重复 | 有序 | {key,value} |
集合 | 可变 | 不可重复 | 无序 | { } |
1.6集合中其他方法
clean | copy | remove | isdisjoint | difference_update |
---|---|---|---|---|
清空集合 | 返回集合的拷贝 | 移除集合中的一个元素(若元素不存在会引发KeyError ) | 如果两个集合有一个空交集,返回True | 从这个集合中删除另一个集合的所有元素 |