python的数据类型有许多种 像元组、列表、字典等等
今天写的是python数据类型之集合:set
我们知道列表可以写成a=[1,2,3,'a',1,2,3]其中元素可以重复
而集合其中元素则是不可重复的
a=[1,2,3,'s',1,2,3]
s=set(a)
print(s)
1、集合的特点:
(1)集合元素必须是可哈希的
s=set([[1,2],3,4])
print(s)
应为列表是不可哈希的,所以当我们把列表当作集合的元素时会报错!
(2)集合是无序的 (和字典一样)
s=set('abcd')
print(s)
s=set(['ab','cd','ef','gh'])
print(s)
2、集合的分类
集合主要分成可变集合和不可变集合(frozenset)
不可变集合:可添加和删除元素、非可哈希,不能用作字典的键,也不能做其他集合的元素
li=[1,'a','b']
s=set(li)
dic={s:'123'}
3、访问集合
s=set([1,2,3,4,5])
print(1 in s)
print(6 in s)
4、更新集合
s.add('1')添加一个元素
s=set([1,2,3])
s.add(4)
print(s)

s.update('ops')
s=set([1,2,3])
s.update('abc')
print(s)

a.update('ooo')
s.update([12,'ad'])#不能去掉[ ] 必须是可迭代的s.remove(2)
s.pop()#随机删除一个元素
s.clear#清空 和删除不一样
del s;删除集合
5、结合操作符
(1)交集
s=set([1,2,3,4,5])
# print(s)
s2=set([4,5,6,7,8])
print(s.intersection(s2))# 或者使用s&s2
(2)并集
s.union(s2) 或者使用‘|’ s | s2
(3)差集
s=set([1,2,3,4,5])
s2=set([4,5,6,7,8])
print(s.difference(s2))
s=set([1,2,3,4,5])
s2=set([4,5,6,7,8])
print(s2.difference(s))或者使用‘-’ s2-s
(4)反向交集
s=set([1,2,3,4,5])
s2=set([4,5,6,7,8])
print(s.symmetric_difference(s2))

(5)父集和子集
s=set([1,2,3,4,5])
s2=set([4,5,6,7,8])
print(s.issuperset(s2))
s=set([4,5])
s2=set([4,5,6,7,8])
print(s2.issuperset(s))
父集、子集可以用<>号来替代
6、集合作用
集合主要可以用来去重,当我们需要对某个数据类型进行去重工作时可以使用集合操作
集合因为数据元素不可哈希
所以集合中元素不存在索引,所以当我们需要找寻集合中某个元素时,我们只能通过遍历操作
来寻找或者通过迭代器,迭代器以后再说。