集合 Set
集合的创建
集合的创建只有一种方式
集合中的元素必须是不可变的数据类型
集合是无序的,可以通过 for 循环来遍历或者迭代器进行筛选
代码语言:javascript复制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):与可变集合相反
集合的相关操作
代码语言:javascript复制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#删除集合
集合类型操作符
代码语言:javascript复制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}