nancyzhu

集合的特点:去重、无序,因此无法通过下标取值。

1. 定义集合

s = set() #定义空的集合
s2 = {\'1\',\'2\',\'3\'} # 不是key -value形式的话就是集合,不是字典
s3 ={\'1\',\'2\',\'3\',\'5\',\'3\'}
print(s3) #打印出来后会去除重复的值 {\'3\', \'1\', \'5\', \'2\'}
ls = [1,2,3,4,5,6,5]
set(ls) #将list强制转换成集合,可以进行去重
print(set(ls))
s4 = \'abcdfegabc\'
set(s4) # set可以进行集合运算
print(set(s4)) #{\'c\', \'f\', \'b\', \'g\', \'e\', \'a\', \'d\'}

2. 操作集合

增加&删除:

s3 ={\'1\',\'2\',\'3\',\'5\'}
s3.add(\'1\') #向集合中添加值,如果是重复的话还是会把重复的去除,因为集合无序所以输出时各个值的位置不定,可能为 {\'2\', \'3\', \'1\', \'5\'}
print(s3)
s3.remove(\'1\') #删除值
print(s3) 
s3.pop()#随机删一个值
print(s3)

交集&并集&差集&对称差集:

s2 = {\'1\',\'2\',\'3\'}
s3 ={\'1\',\'2\',\'5\'}
#交集
a = s2.intersection(s3) #取交集, s2.intersection(s3) 与 s3.intersection(s2) 一样
print(a)  #{\'2\', \'1\'}
b = s2.intersection(s3)
print(b) #{\'2\', \'1\'}
print(s2 & s3) #取交集 {\'2\', \'1\'}
#并集
print(s2.union(s3)) #取并集 {\'2\', \'5\', \'3\', \'1\'}
print(s2|s3)#取并集 {\'2\', \'5\', \'3\', \'1\'}
#差集
print(s2.difference(s3)) #取s2中存在,s3 不存在的,#取差集 {\'3\'}
print(s2 - s3) #取差集 {\'3\'}
print(s3 - s2) # {\'5\'}
#对称差集,取s2, s3 中不同时存在的元素
print(s2 ^ s3) # {\'3\', \'5\'}

print(s2.symmetric_difference(s3))#对称差集,就是把两个集合中相同的去掉

 

分类:

技术点:

相关文章: