集合
set集合,是一个无序且不重复的元素集合
s=set(['alex','alex','sb'])
print(s)
>>>{'sb', 'alex'}
s=set('hello')
print(s)
>>>{'o', 'l', 'h', 'e'}
几种方法
1 s={1,2,3,4,5,6} 2 #添加 3 s.add('s') 4 print(s) 5 >>>{1, 2, 3, 4, 5, 6, 's'} 6 7 s.clear() 8 print(s) 9 >>>set() 10 11 s1=s.copy() 12 浅拷贝 13 14 随机删 15 s.pop() 16 17 s={'sb',1,2,3,4,5,6} 18 #随机删 19 # s.pop() 20 21 #指定删除 22 s.remove('sb') 23 # s.remove('hellol') #删除元素不存在会报错 24 s.discard('sbbbb')#删除元素不存在不会报错 25 print(s) 26 >>>{2, 3, 4, 1, 5, 6} 27 28 #求交集 29 #A1,A2为集合 30 A1.intersection(A2) = A1 & A2 31 32 #求并集 33 A1.union(A2) = A1 | A2 34 35 #差集(A1有A2没有) 36 A1.difference(A2) = A1 - A2 37 38 #交叉补集 (只在A1有的 + 只在A2有的) 39 A1.symmetric_difference(A2) = A1^A2 40 41 print(A1.issubset(A2)) #A1 是否为 A2 的子集,是为"True" 42 43 print(A1.issuperset(A2)) #A1 是否为 A2 的父集,是为"True" 44 45 #更新 46 s1={1,2} 47 s2={5,4,"s"} 48 s1.update(s2) #把s2更新到s1中,一次全部更新进去 49 print(s1) 50 >>>{1, 2, 's', 4, 5} 51 52 s1={1,2} 53 s1.add(3, 4) #报错!add只能加一个值 54 55 s1={1,2} 56 s2={5,4,"s"} 57 s1.union(s2) #不会更新 58 print(s1) 59 >>>{1, 2} 60 注意:如果是有s3接收了s1.union(s2),则接收到的会是一个并集,但对s1是不变的
函数
def func1(x, *args,**kwargs):
func1(1,2,3,4,5, name="李" ,age=18)
在这里面:1传给x; 2,3,4,5作为位置参数传给*args,*args会把2,3,4,5处理成一个元组;
name="李" ,age=18作为关键字参数传给**kwargs, **kwargs会把它处理成一个字典;
1 def test(x,y,z):#x=1,y=2,z=3 2 print(x) 3 print(y) 4 print(z) 5 6 #位置参数,必须一一对应,缺一不行多一也不行 7 test(1,2,3) 8 9 #关键字参数,无须一一对应,缺一不行多一也不行 10 test(y=1,x=3,z=4) 11 12 ########位置参数必须在关键字参数左边########## 13 #所以就有了 *args 在 **kwargs左边 14 test(1,y=2,3)#报错 15 test(1,3,y=2)#报错 16 test(1,3,z=2) 17 test(1,3,z=2,y=4)#报错 18 test(z=2,1,3)#报错 19 20 def handle(x,type='mysql'): 21 print(x) 22 print(type) 23 handle('hello') 24 handle('hello',type='sqlite') 25 handle('hello','sqlite') 26 27 def install(func1=False,func2=True,func3=True): 28 pass 29 30 #参数组:**字典 *列表 31 def test(x,*args): 32 print(x) 33 print(args) 34 35 test(1) 36 test(1,2,3,4,5) 37 test(1,{'name':'alex'}) 38 test(1,['x','y','z']) 39 test(1,*['x','y','z']) 40 test(1,*('x','y','z')) 41 42 def test(x,**kwargs): 43 print(x) 44 print(kwargs) 45 test(1,y=2,z=3) 46 test(1,1,2,2,2,2,2,y=2,z=3) 47 test(1,y=2,z=3,z=3)#会报错 :一个参数不能传两个值 48 49 def test(x,*args,**kwargs): 50 print(x) 51 print(args,args[-1]) 52 print(kwargs,kwargs.get('y')) 53 test(1,1,2,1,1,11,1,x=1,y=2,z=3) #有x所以报错 54 test(1,1,2,1,1,11,1,y=2,z=3) 55 56 test(1,*[1,2,3],**{'y':1})