集合 Set
集合的创建
集合的创建只有一种方式
集合中的元素必须是不可变的数据类型
集合是无序的,可以通过 for 循环来遍历或者迭代器进行筛选
s=set('xiaoming') s1=['alex','mike','alex','mary'] s2=set(s1) print(s) print(s2) >>>{'a','g','m','x','o','n','i'} >>>{'mike','alex'} # 集合的重要特点:去重,重复元素只会显示一次 s3=list(s) # 重新把集合转变为列表 print(s3) >>>['mike','alex']
集合的分类:可变集合、不可变集合
可变集合(set):可添加和删除元素,不能作为字典的键
不可变集合(frozenset):与可变集合相反
集合的相关操作
s = set('xiaoming') s1 = ['alex','mike','alex','mary'] s = set(s1) 1)add s.add('john') print(s) >>>{'alex', 'mary', 'mike', 'john'} 2)update s.update('john') print(s) >>>{'alex','n','h','mike','o','j'} s.update(['john','damon'])#使用一个课迭代的容器list来把元素加入集合中 print(s) >>>{'alex','mike','john'} 3)pop s.pop()#pop不能指定删除某个特定的元素,每次只会删除一个参数 print(s) >>>{'mike','alex'} 4)remove s.remove('mike')#remove可以删除指定元素 print(s) >>>{'mary', 'alex'} 5)clear s.clear()#清空集合 print(s) >>>set() 6)del#删除集合
集合类型操作符
1)in,not in 2)集合等价(==)与不等价(!=) 3)子集、超集 父集、超集(>) a=set([1,2,3,4]) b=set([4,5,6,7]) print(a.issuperset(b)) # a 是否完全包含 b >>> False 子集(<) # a 是否属于 b print(a.issubset(b)) >>> False 4)联合即并集符号(|) 联合(union)操作与集合的or操作是等价的,取两个集合中所有的元素print(a.union(b)) # print(a|b) >>>{1,2,3,4,5,6,7} 5)交集(&) print(a.intersection(b)) # print(a&b) >>>{4} 6)差集(-) print(a.difference(b))#inabutnotinb # print(a-b)
>>>{1,2,3} 7)对称差集(^) print(a.symmetric_difference(b)) # print(a^b) >>>{1,2,3,5,6,7}