python集合(set)
一、声明集合
集合特点:无序不重复(可以将列表转换为集合实现去重操作)
s1 = set() #创建空集合只能用set()
print(type(s1)) #<class 'set'>
s2 = {}
print(type(s2)) #<class 'dict'>
s3 = {1,2,3,4}
print(type(s3)) #<class 'set'>
二、增加
(一)add()方法,添加一个元素
s1 =set()
s1.add('test')
s1.add('hello')
print(s1) #{'hello', 'test'}
s1.add('test')
print(s1) #{'hello', 'test'}
(二)update()方法,添加多个元素
s1 = {'张三','李四'}
t1 = ('王五_1','赵六_2')
list1 = ['王五_2','赵六_2']
s1.update(list1) #{'赵六_2', '李四', '张三', '王五_2'}
print(s1)
s1.update(t1) #{'王五_2', '王五_1', '李四', '张三', '赵六_2'}
print(s1)
三、删除
(一)remove()方法
s1 = {'张三','李四','王五','赵六'}
s1.remove('张三') #{'李四', '赵六', '王五'}
s1.remove('王') #KeyError: '王'
(二)pop()方法
s1 = {'张三','李四','王五','赵六'}
s1.pop() #{'李四', '赵六', '王五'}
s1.pop() #{'赵六', '王五'}
(三)discard()方法,类似remove()但是删除不存在元素不报错
s1 = {'张三','李四','王五','赵六'}
s1.discard('张三') #{'李四', '赵六', '王五'}
s1.discard('王') #{'王五', '李四', '赵六'}
四、集合之间的运算操作
(一)减操作(差集)
s1 = {1,2,3,4,5,6,7,8}
s2 = {1,2,3,4,5}
print(s1-s2) #{8, 6, 7}
print(s1.difference(s2)) #{8, 6, 7}
print(s2.difference(s1)) #set()
(二)&交集
s1 = {1,2,3,4,5,6,7,8}
s2 = {1,2,3,4,5}
print(s1&s2) #{1, 2, 3, 4, 5}
print(s1.intersection(s2)) #{1, 2, 3, 4, 5}
print(s2.intersection(s1)) #{1, 2, 3, 4, 5}
(三)|并集
s1 = {1,2,3,4,5,6,7,8}
s2 = {7,8,9,10}
print(s1|s2) #{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
print(s1.union(s2)) #{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
print(s2.union(s1)) #{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}