set集合的特性
1.元素必须是可hash的(不可变的)数据类型包括:str、int、 float、tuple
2.无序且不可重复的
3.set(这里面必须是可迭代的对象:str、list、dict的key、tuple)
创建集合方法
可变集合(unhash):set()
不可变集合(hash):forzenset()
访问集合
集合是无序的,无法使用索引,只能通过历遍和迭代器来取值,in、not in 来判断元素是否在集合中。
集合的方法
add 添加
a = ['alex',3,4]
s = set(a)
print(s)
s.add('xiaoma')
print(s)
output:
{'alex', 3, 4}
{'xiaoma', 'alex', 3, 4}
update 更新,会将一个序列的内容全都加到集合中去,重复的会去重a = ['alex',3,4]
s = set(a)
print(s)
s.update({'name':'xia','age':'90'})
print(s)
output:
{3, 4, 'alex'}
{3, 4, 'alex', 'age', 'name'}
------------------------------------------------
a = ['alex',3,4]
s = set(a)
print(s)
s.update('ops')
print(s)
output:
{3, 4, 'alex'}
{3, 4, 'p', 's', 'alex', 'o'}
----------------------------------------------------
a = ['alex',3,4]
s = set(a)
print(s)
s.update([1,2])
print(s)
output:
{3, 4, 'alex'}
{1, 2, 3, 4, 'alex'}
删除 remove() pop() clear() del
a = ['alex',3,4]
s = set(a)
print(s)
s.remove('alex')
print(s)
output:
{'alex', 3, 4}
{3, 4}
------------------------------------------------------
a = ['alex',3,4]
s = set(a)
print(s)
s.pop() #随意删除的形式,有返回值
print(s)
output:
{3, 4, 'alex'}
{4, 'alex'}
---------------------------------------------------------
s.clear() #清空集合,和删除还是不太一样的
a = ['alex',3,4]
s = set(a)
print(s)
s.clear()
print(s)
output:
{3, 'alex', 4}
set()
-----------------------------------------------------------------
a = ['alex',3,4]
s = set(a)
print(s)
del s #将s删除
print(s) #报错
集合的重点用法 (*****)
- 去重
- 测试方式
a = set([1,2,3,4,5])
b = set([4,5,6,7,8])
print( a != b) #等价判断两个集合是否相等 ,返回一个bool 。== !=
print(a & b ) #交集 {4, 5}
print(a | b) #并集 {1, 2, 3, 4, 5, 6, 7, 8}
print(a - b) #差积 {1, 2, 3} in a but not in b
print(b - a) #差积 {6,7,8} in b but not a
print( b ^ a ) #对称 {1, 2, 3, 6, 7, 8}
print(a < b ) #子集 a 是否是b的子集
print(a > b ) #超集 a 是否是b的父集