• 集合,函数 --- Python重新开始第三天(二)


    集合

    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})
  • 相关阅读:
    第七课——iOS数据持久化
    第三章-动态规划
    IOS第五课——Gesture and TableView
    第六课——UIDynamicAnimator
    文本居中换行、边框设置
    属性优先级、图片属性设置、内联标签设置大小
    打开、悬浮、访问、点击、状态用:
    属性选择器用【】
    组合使用用逗号,
    3种选择器的使用方式
  • 原文地址:https://www.cnblogs.com/lishuaing/p/10674149.html
Copyright © 2020-2023  润新知