zoukankan      html  css  js  c++  java
  • python之路(2)集合(set)和字符串格式化

     目录

      

     集合(set)  

      {‘a’,'b','c','d','e'}

      定义:有不同元素组成的集合,集合的元素为不可变类型(数字,字符串,元组),集合是一组无序排列的可hash值,可以作为字段的key

       注:进行修改值操作后不改变id值的变量类型( id(argv)不发生改变 即内存地址不发生改变 )为不可变类型

         集合的创建:


       定义可变量集合set  >>>  set_test=set('hello')    或    set_test=set(['hello','123','chen']) 

      定义不可变量集合set  >>> set_test=frozenset('hello')  

        集合的关系测试


      a = {'aa','bb','cc','dd'}

      b = {'aa','bb','cc'} 

      交集:取两个集合相交的部分

    a.intersection(b)
    a&b
    

      并集: 两个集合联合,去掉相同的部分

    a.union(b)
    a|b
    

      差集:取一个集合在另一个集合没有的部分

    a.difference(b)
    a-b
    

      交叉补集:联合两个集合,去掉共同的部分

    a.symmetric_difference(b)
    a^b
    

      集合的方法:

    class set(object):
        """
        set() -> new empty set object
        set(iterable) -> new set object
    
        Build an unordered collection of unique elements.
        """
    
        def add(self, *args, **kwargs):  # real signature unknown
            """添加一个元素到集合到集合中"""
            """
            Add an element to a set.
    
            This has no effect if the element is already present.
            """
            pass
    
        def clear(self, *args, **kwargs):  # real signature unknown
            """ Remove all elements from this set. """
            pass
    
        def copy(self, *args, **kwargs):  # real signature unknown
            """ Return a shallow copy of a set. """
            pass
    
        def difference(self, *args, **kwargs):  # real signature unknown
            """差集  a-b"""
            """
            Return the difference of two or more sets as a new set.
    
            (i.e. all elements that are in this set but not the others.)
            """
            pass
    
        def difference_update(self, *args, **kwargs):  # real signature unknown
            """取差集并更新集合"""
            """ Remove all elements of another set from this set. """
            pass
    
        def discard(self, *args, **kwargs):  # real signature unknown
            """删除元素,如果没找到,返回none"""
            """
            Remove an element from a set if it is a member.
    
            If the element is not a member, do nothing.
            """
            pass
    
        def intersection(self, *args, **kwargs):  # real signature unknown
            """交集 a&b"""
            """
            Return the intersection of two sets as a new set.
    
            (i.e. all elements that are in both sets.)
            """
            pass
    
        def intersection_update(self, *args, **kwargs):  # real signature unknown
            """取交集并更新集合"""
            """ Update a set with the intersection of itself and another. """
            pass
    
        def isdisjoint(self, *args, **kwargs):  # real signature unknown
            """判断两个交集是否有交集"""
            """ Return True if two sets have a null intersection. """
            pass
    
        def issubset(self, *args, **kwargs):  # real signature unknown
            """判断一个集合是不是另一个集合的子集"""
            """ Report whether another set contains this set. """
            pass
    
        def issuperset(self, *args, **kwargs):  # real signature unknown
            """判断一个集合是不是另一个集合的父集"""
            """ Report whether this set contains another set. """
            pass
    
        def pop(self, *args, **kwargs):  # real signature unknown
            """随机删除一个元素"""
            """
            Remove and return an arbitrary set element.
            Raises KeyError if the set is empty.
            """
            pass
    
        def remove(self, *args, **kwargs):  # real signature unknown
            """指定元素删除,如果没找到,报异常"""
            """
            Remove an element from a set; it must be a member.
    
            If the element is not a member, raise a KeyError.
            """
            pass
    
        def symmetric_difference(self, *args, **kwargs):  # real signature unknown
            """交叉补集 a^b"""
            """
            Return the symmetric difference of two sets as a new set.
    
            (i.e. all elements that are in exactly one of the sets.)
            """
            pass
    
        def symmetric_difference_update(self, *args, **kwargs):  # real signature unknown
            """取交叉补集并更新集合"""
            """ Update a set with the symmetric difference of itself and another. """
            pass
    
        def union(self, *args, **kwargs):  # real signature unknown
            """并集  a|b"""
            """
            Return the union of sets as a new set.
    
            (i.e. all elements that are in either set.)
            """
            pass
    
        def update(self, *args, **kwargs):  # real signature unknown
            """添加集合,参数为可迭代对象"""
            """ Update a set with the union of itself and others. """
            pass
    set_method

     字符串的格式化 

       1.  百分号方式

     %[(name)[flags][width].[precision]tyecode]  

    • (name)      【可选】用于指定key
    • flags          【可选】
      • +        右对齐:正数前加负号
      • -         左对齐:负数前加正号
      • 空格      右对齐
      • 0          左对齐    
    • width              【可选】指定宽度
    • .precision        【可选】小数点后保留位数 
    • typecode        【必选】
      • s           获取对象为str类型
      • r           获取对象是可打印类型
      • c          将数字转换成unicode对应的值
      • x           将整数转换成八进制表示
      • d           将整数转换成十进制表示
      • e           将整数,浮点数转换成科学表示法
    test = 'i am %s' %'chen'
    
    test = 'i am %s,age %d' %('hello',21)
    
    test = 'i am %(name)s,age %(age)d' %{"name":'hello',"age":21}
    
    test = 'i am %.2f' %27.22454
    
    test = 'i am %(pp).2f' %{"pp":27.22454}
    
    test = 'i am %(pp).2f  %%' %{"pp":27.22454} #打印百分号
    

       2.format方式

    [[file]align][sign][#][0][width][,][.precision][type]

    • file           【可选】空白处填充字符
    • align           【可选】对齐方式
      • <    内容左对齐
      • >    内容右对齐
      • ^    内容居中               
    • sign             【可选】有无符号数字
      • +          正号加负,负号加正
      • -          正号不变,负号加正
      • 空格        正号空格,符号加负  
    • #                   【可选】对于二进制,八进制,十六进制,如果加上#,会显示0b/0o/0x,否则不显示
    • ,                  【可选】为数字添加分割符
    • width             【可选】格式化位所占宽度
    • .precision       【可选】小数位保留精度
    • type                【可选】格式化类型
      • s          格式化字符串类型
      • 空白        同s  
      • b          将十进制自动转化成二进制然后格式化
      • c          将十进制自动转化成对应的unicode字符
      • d          十进制整数
      • x          将十进制自动转换成十六进制然后格式化(小写x)
      • X         将十进制自动转换成十六进制然后格式化(大写X)
      • e         将数字转换成科学计数法(小写e)
      • E          将数字转换成科学计数法(大写E)
      • f          转换成浮点型(默认小数后6位)
      • F         转换成浮点型(默认小数后6位)
      • g          自动在e和f中切换     
      • G          自动在E和F中切换
      • %          显示百分比(默认显示6位)  
    test = 'i am {}'.format("chen")
    
    test = 'i am {},age {}'.format(*["chen",21])#一个*表示传列表
    
    test = 'i am {1},age {0}'.format(21,"chen")
    
    test = 'i am {name}'.format(name="chen")
    
    test = 'i am {name}'.format(**{"name":"chen"})#两个*表示传字典
    
    test = 'i am {0[0]},,age {0[1]}'.format(["chen",21])
    
    test = 'i am {:s},,age {:d}'.format("chen",21)
    
    test = 'i am {:s},,age {:d}'.format(*["chen",21])
    
    test = 'i am {name:s},age {age:d}'.format(name="chen",age=21)
    
    test = 'i am {name:s},age {age:d}'.format(**{"name":"chen","age":21})
    
    test = 'numbers : {:b},{:o},{:d},{:x},{:X},{:%}'.format(15,15,15,15,15,0.15)
    
    test = 'numbers : {0:b},{0:o},{0:d},{0:x},{0:X},{0:%}'.format(15)
    
    test = 'numbers : {num:b},{num:o},{num:d},{num:x},{num:X},{num:%}'.format(num=15)
    

      

  • 相关阅读:
    dockerk个人学习(0)
    ubuntu编译python源码的坑
    查找大目录
    ubuntu 远程gui显示
    paramiko模块
    python open和file的区别
    python type metaclass
    python 生成器 迭代器 yiled
    博客暂停更新,请移步新主页
    win10禁用自动更新服务
  • 原文地址:https://www.cnblogs.com/shuzhixia/p/9748400.html
Copyright © 2011-2022 走看看