组合数据类型

数字 int
方法:
    int('123')将其他类型的数字转换为数字
    int(10,base=2,8,16)  按照指定进制转换
    .bit_length() 输出变量至少需要几位比特位
字符串:一旦创建不可修改,一旦修改、拼接就会生成新的字符串
方法: 0. isdigit() 检测字符串是否只由数字组成
1. center(20,'*') 20是宽度(必须填),*是填充符号字符串居中(不必须,只能是一个字符) >>> num = 'wang' >>> n = num.center(20,'0') >>> print(n) 00000000wang00000000 2. capitalize() 首字母大写 3. lower() 首字母小写 4. count() 计算指定字符在字符串中出现了多少次 >>> a = 'qwsaqwsa' >>> n = a.count('a') >>> print(n) 2 5. endswith()/startswith() 判断是否以指定字符结尾/开头,返回bool >>> a = 'alx' >>> a.endswith('a') False >>> a.endswith('x') True >>> a.startswith('a') True 6. find() 从前往后找,返回第一个符合指定字符串的位置 >>> a = 'asdfghjkl' >>> a.find('g') 4 7. format() 格式化,将占位符替换成指定的字符 可以是字典对应(字典前加**),亦可以是数字对应 format_map() 用法相同,但只能传入字典 >>> a = 'i an {name} , old is {age}' >>> n = a.format(name = 'bob',age = '18') >>> print(n) i an bob , old is 18 >>> a = 'i an {0} , old is {1}' >>> n = a.format('bob','18') >>> print(n) i an bob , old is 18 8. isalnum() 判断字符串中是否只包含数字或字母 >>> s = 'asdfghj' >>> s.isalnum() True >>> s = 'qefq2342你好' >>> s.isalnum() True >>> s = 'adv232..' >>> s.isalnum() False 9. expandtabs(6) 先进行分割,六个一组,不足六个的,\t会补上空格,\t之后的重新开始计数 >>> s = '123\tabc\t456\tasd' >>> s.expandtabs(4) '123 abc 456 asd' >>> s.expandtabs(6) '123 abc 456 asd' 10. isprintable # 输出不可显示的字符时会false ,如\t , \n >>> s = 'adv\ndvd\t' >>> s.isprintable() False 11. isspace # 是否全部是空格 >>> s = ' ' >>> s.isspace() True >>> s = 'adsca ' >>> s.isspace() False 12. istitle #是否是标题,即全部首字母大写 >>> s = 'Elmakd iuiuhi Hkbu' >>> s.istitle() False >>> s = 'Elmakd Iuiuhi Hkbu' >>> s.istitle() True 13. join 非常重要 #在字符串每个元素间添加指定字符,' '.join() >>> ' '.join('wanghaiyang') 'w a n g h a i y a n g' 14. lower # 转换小写 >>> s = 'IIUIB' >>> s.lower() 'iiuib' 15. upper # 转换大写 >>> s = 'advaeb' >>> s.upper() 'ADVAEB' 16. lstrip,rstrip,strip #去除空白(开头和结尾的),换行(默认),也可以去除指定字符最多匹配 >>> s = ' sve vre ' >>> s.strip() 'sve vre' 17. maketrans,translate # 连用,前者创建对应关系,后者根据关系替换 18. split 非常重要 # 根据指定字符分割为一个列表,默认以空字符分割 19.replace(old,new,max) - rsplit 从后向前分 >>> s = 'asdfgasdfgasdfg' >>> s.split('d') ['as', 'fgas', 'fgas', 'fg'] - 参数maxsplit,指定分割到第几个指定字符(空字符) 19. replace('a','sss') 将字符串中的'a'替换为'sss' >>> s = 'asdfgasdfgasdfg' >>> s.replace('fg','你好') 'asd你好asd你好asd你好'
列表:list
        1. append()                  #追加
                >>> li = [1,2,3,4,5,'a','b']
                >>> li.append('v')
                >>> print(li)
                [1, 2, 3, 4, 5, 'a', 'b', 'v']
        2. clear()                   #清空列表
                >>> li = [1,2,3,4,'advs','aca',1,32,54]
                >>> li.clear()
                >>> ls
                >>> li
                []
        3. copy()                    #浅拷贝
                >>> li_cp = li.copy()
                >>> print(li_cp)
                [1, 2, 3, 4, 5, 'a', 'b', 'v']
        4. count()                   #计算元素出现的次数
                >>> li = [11,2,3,444,5,5,5,666]
                >>> li.count(5)
                3        
        5. extend()                  #扩展,传入可迭代对象
                >>> li.extend(['a','b','c'])
                >>> li
                [11, 2, 3, 444, 5, 5, 5, 666, 'a', 'b', 'c']
        6. index()                   #根据元素找索引,可以设置起始位置
                >>> li = [11, 2, 3, 444, 5, 5, 5, 666, 'a', 'b', 'c']
                >>> li.index('a')
                8
        7. insert(索引,元素)        #向指定索引插入元素
                >>> li.insert(2,'你好')
                >>> li
                [11, 2, '你好', 3, 444, 5, 5, 5, 666]
        8. pop()                     #将指定索引的元素弹出(删除并获取),默认最后一个
                >>> li = [11,2,3,444,5,5,5,666]
                >>> n = li.pop(3)
                >>> n
                444
                >>> li
                [11, 2, 3, 5, 5, 5, 666]
        9. remove()                  #删除指定元素
                >>> li = [11, 2, '你好', 3, 444, 5, 5, 5, 666]
                >>> li.remove('你好')
                >>> li
                [11, 2, 3, 444, 5, 5, 5, 666]
        10. reverse()                #将列表反转
                >>> li = [11, 2, '你好', 3, 444, 5, 5, 5, 666]
                >>> li.reverse()
                >>> li
                [666, 5, 5, 5, 444, 3, '你好', 2, 11]
        11.sort()                    #排序,可选参数reverse = False/True 
                >>> li.sort()
                >>> li
                [1, 3, 3, 4, 4, 4, 5, 6, 7, 8]  # 默认reverse = False,如果reverse = True ,则从大到小排序
        12.del L[0] 删除第一个元素,支持索引和切片
        列表中可以嵌套任何类型
        L = [1,2,3,'a','afas','你好',[1,2,3,4]]
字典:dict   # 无序
        ①格式:dic = {'key1':12,'key2':'asc'}  #value可以是任意类型,key可以是数字,字符串,bool(与1,0会重复),元组
        ②:for循环时默认只有key,只获取键:info.keys,只获取值:info.values,键值同时获取info.itmes
    
        方法:
            1.del info['k1']
            2.dict.fromkeys(['k1','k2','k3'],[1,2,3]) 转换为字典,前一个列表中的元素转换成键,后一个参数转换为值,
            所有的键都对应相同的值,没有value时,对应None
                >>> dict.fromkeys(['k1','k2','k3'],[1,2,3])
                {'k1': [1, 2, 3], 'k2': [1, 2, 3], 'k3': [1, 2, 3]}
            3. get(键,指定键不存在时返回什么) 
                >>> dic = {'k1': [1, 2, 3], 'k2': [1, 2, 3], 'k3': [1, 2, 3]}
                >>> dic.get('k1')
                [1, 2, 3]
                >>> dic.get('k2','abs')
                [1, 2, 3]
                >>> dic.get('kdv','dva')
                'dva'
            4. update() 更新字典,键存在则覆盖,不存在就添加
                有两种方式更新
                    ①:dict.update('k1':12,'k2':13)
                    ②:dict.update(k1=12,k2=13)
                        >>> dic = {'k1': [1, 2, 3], 'k2': [1, 2, 3], 'k3': [1, 2, 3]}
                        >>> dic.update(k1=1)
                        >>> dic
                        {'k1': 1, 'k2': [1, 2, 3], 'k3': [1, 2, 3]}
                        
                        >>> dic.update('k4':5)   #错误的写法
                        SyntaxError: invalid syntax
                        
                        >>> dic.update({'k4':5})
                        >>> dic
                        {'k1': 1, 'k2': [1, 2, 3], 'k3': [1, 2, 3], 'k4': 5}
元组:tuple
        l = (1,2,3,4,5)  # 元组中的元素不可增、删、改,支持索引和切片,有序
        1. count()
        2. index()
集合:set
        特点:
            1.集合中的元素不重复
            2.只能存放不可变元素(数字、字符串、元组)
            3.无序
            4.不可索引
        方法:
            1. add() #向集合中添加元素
                    >>> s = {1,2,3,'ss','wo',(1,2,3)}
                    >>> s.add('why')
                    >>> s
                    {1, 2, 3, 'ss', 'wo', (1, 2, 3), 'why'}
               update() # 更新多个值,可传入集合、列表、元组
            2. clear() #清空集合
            3. copy() # 复制
                    >>> s = {1,2,3,'ss','wo',(1,2,3)}
                    >>> v = s.copy()
                    >>> v
                    {1, 2, 3, (1, 2, 3), 'ss', 'wo'}
            4. pop() # 随机删除
                    >>> s = {1,2,3,'ss','wo',(1,2,3)}
                    >>> s.pop()
                    1
                    >>> s
                    {2, 3, 'ss', 'wo', (1, 2, 3)}
            5. remove() #可以指定要删除的元素,删除不存在元素会报错
                    >>> s = {1,2,3,'ss','wo',(1,2,3)}
                    >>> s.remove(2)
                    >>> s
                    {1, 3, 'ss', 'wo', (1, 2, 3)}
                    >>> s.remove(7)
                    Traceback (most recent call last):
                      File "<pyshell#12>", line 1, in <module>
                        s.remove(7)
                    KeyError: 7
            6. discard() # 删除元素,不存在不报错
                    >>> s = {1,2,3,'ss','wo',(1,2,3)}
                    >>> s.discard('3')
                    >>> s
                    {1, 2, 3, 'ss', 'wo', (1, 2, 3)}
                    >>> s.discard(9)
                    >>> s
                    {1, 2, 3, 'ss', 'wo', (1, 2, 3)}
            7. isdisjoint() # 
            8. issubset() # 判断一个集合是否包含另一个集合,即另一个集合是否是它的子集
        集合关系运算:
            1.交集  集合1.intersection(集合2) \ 集合1&集合2
                    >>> s1 = {1,2,3,4,5}
                    >>> s2 = {1,2,3,4,'a','b'}
                    >>> s3 = s1.intersection(s2)
                    >>> s3
                    {1, 2, 3, 4}
                    >>> s3 = s1&s2
                    >>> s3
                    {1, 2, 3, 4}
            2.并集 集合1.union(集合2)  \ 集合1|集合2    
                    >>> s1 = {1,2,3,4,5}
                    >>> s2 = {1,2,3,4,'a','b'}
                    >>> s3 = s1.union(s2)
                    >>> s3
                    {1, 2, 3, 4, 5, 'b', 'a'}
                    >>> s3 = s1 | s2
                    >>> s3
                    {1, 2, 3, 4, 5, 'b', 'a'}            
            3.差集 集合1.difference(集合2) 集合1 - 集合2
                    >>> s1 = {1,2,3,4,5}
                    >>> s2 = {1,2,3,4,'a','b'}
                    >>> s3 = s1.difference(s2)
                    >>> s3
                    {5}
                    >>> s3 = s1 - s2
                    >>> s3
                    {5}        
            4.交叉补集 集合1 ^ 集合2

 

posted @ 2020-06-13 17:29  pywhy  阅读(323)  评论(0编辑  收藏  举报