set是一个无序且元素不重复的集合
set使用大括号{}或set()方法进行定义
set中的元素可以是str、number、tuple,但不能是list、dict、set
set常见用途包括成员资格测试、从序列中删除重复项以及进行交集、并集、差集和对称差集等数学运算
set中的单个元素无法被获取,但可以添加和删除
set中,True表示为1,False表示为0
要定义空set时只能使用set()方法
# (1) varset = {123,1,False,5.5,(),(1,2,3),True,123,'AA',0} print(varset) # (2) set([iterable]) vars = set('(1,a,True),"b"''False') print(vars) {False, 1, 'AA', 5.5, (1, 2, 3), (), 123} {'a', 'u', 'l', 's', '1', 'r', '(', 'b', 'T', 'F', ',', ')', 'e', '"'}
varset = {123,1,False,5.5,(),(1,2,3),True,123,'AA',0,'123'} # 成员检测 res1 = '()' in varset res2 = () in varset print(res1,res2) # 遍历set for i in varset : print(i,type(i)) False True False <class 'bool'> 1 <class 'int'> 5.5 <class 'float'> AA <class 'str'> (1, 2, 3) <class 'tuple'> 123 <class 'str'> () <class 'tuple'> 123 <class 'int'>
varset = {123,1,False,5.5,(),(1,2,3),True,123,'AA',0,'123'} # len() res = len(varset) print(res) # set.add() # 功能:向set中添加元素 varset.add('ash') print(varset) # set.pop() # 功能:随机删除一个元素并返回 r1 = varset.pop() # r2 = varset.pop() # r3 = varset.pop() # r4 = varset.pop() print(r1) # set.discard(elem) # 功能:从set中删除elem varset.discard(100) varset.discard('AA') print(varset) # set.remove(elem) # 功能:从set中删除elem,若elem不存在则引发异常 # varset.remove(100) KeyError varset.remove((1,2,3)) print(varset) # set.update(*other) # 功能:更新set,添加所有other中的元素 varset.update([1,2,False],(True,0),'ashh') print(varset) # set.copy() # 功能:浅拷贝set并返回 # set中不存在深拷贝的问题,因为set中元素都是不可变类型,不存在对set中二级容器进行操作的问题 res = varset.copy() print(res) # set.clear() # 功能:清空set varset.clear() print(varset) # frozenset() varfs = frozenset([1,2,3,123]) print(varfs) 8 {False, 1, 5.5, 'AA', (1, 2, 3), '123', (), 'ash', 123} False {1, 5.5, (1, 2, 3), '123', (), 'ash', 123} {1, 5.5, '123', (), 'ash', 123} {False, 1, 2, 's', 'h', 5.5, 'a', '123', (), 'ash', 123} {False, 1, 2, 's', 'h', 5.5, 'a', '123', (), 'ash', 123} set() frozenset({123, 1, 2, 3})