• 数据类型的补充以及编码的进阶


    1. 数据类型的补充

      1. str

        #capitalize 首字母大写,其余变小写
        print(s1.capitalize)
        
        #swapcase 大小写反转
        print(s1.swapcase)
        
        #title 每个单词的首字母大写
        mag = 'taibai say3hi'
        print(msg.title())
        
        s1 = 'barry'
        #center 居中
        print(s1.center(20))
        
        #find 通过元素找索引,找到第一个就返回,找不到就返回-1
        print(s1.find('a'))
        
        #index 通过元素找索引,找到第一个就返回,找不到报错
        print(s1.index('a'))
        
        #循环一个列表的时候,最好不要改变列表的大小,这样会影响你的最终结果。
        
      2. 元素

        #元组中如果只有一个元素,并且没有逗号,那么它不是元祖,它还是原来的数据类型。
        
        #count 计数
        # tu = (1,2,3,3,3,2,2,3,)
        print(tu.count(3))
        
        #index 查找对象的索引。
        tu = ('太白', '日天', '太白')
        print(tu.index('太白'))#元祖中有多个对象的话,查找从右数第一个,直接返回。
        
        
      3. 列表

        l1 = ['太白','123','女神','大壮']
        #count 查找对象在列白在出现的次数
        print(l1.count('123'))
        
        #index 查找对象在列表中出现在几次
        print(l1.index('123'))
        
        #sort 按照从小到大排序
        l1 = [5, 4, 3, 7, 8, 6, 1, 9]
        l1.sort()
        print(l1)
        #sort(reverse=True) 按照从大到小排序
        l1.sort(revese=True)
        print(l1)
        #revesrse 反转
        l1.revesrse()
        print(l1)
        
        #列表可以相加
        l1 = [1,2,3]
        l2 = ['太白','123','女神']
        print(l1+l2)
        
        #列表与数字相乘
        l1 = [1,2,3]
        l2 = l1*3
        print(l2)
        
        l1 = [11, 22, 33, 44, 55]
        #索引为奇数对应的元素删除(不能一个一个删除,此l1只是举个例子,里面的元素不定)。
        #倒序删除元素
        for i in range(len(l1)-1,-1,-1):
            if i % 2 == 1:
                l1.pop(index)
        print(l1)
        #最简单的:
        del l1[1::2]
        print(l1)
        
      4. 字典

        #update 有则覆盖,无责添加
        dic = {'name':'太白','age':18}
        dic.update(hobby='运动',hight='175')#如果字典中没有次键,就是增加。
        dic.update(name='太白金星')#如果字典中有次键,那就覆盖。
        #pdate还可以将两个字典合成一个,有的覆盖,没有的添加。
        dic1 = {"name":"jin","age":18,"sex":"male"}
        dic2 = {"name":"alex","weight":75}
        dic1.update(dic2)
        print(dic1)#{'name': 'alex', 'age': 18, 'sex': 'male', 'weight': 75}
        
        #fromkeys 用于创建一个字典,键必须是一个可迭代对象
        dic = dict.fromkeys([1,2,3],'alex')
        print(dic)#{1: 'alex', 2: 'alex', 3: 'alex'}
        #它们共用的一个值,所以无论那个值被修改,他们都会被修改
        
        dic = {'k1': '太白', 'k2': 'barry', 'k3': '白白', 'age': 18}
        #将字典中键含有'k'元素的键值对删除。
        l1 = []
        for i in dic:
            if 'k' in i:
                l1.append(key)
        for z in l1:
            dic.pop(i)
        print(dic)
        #循环一个字典时,如果改变这个字典的大小,就会报错。
        #那么就把我们要删除的键添加到一个列表中,然后载循环这个列表,去删除字典中的键值对。
        
        
    2. 数据类型的转换

      1. # 0 ,'',[],{},set(),None 转换成bool值位False
        只要不是空(0),就是True
        
    3. 编码的进阶

      1. 不同的密码本之间不能相互识别

      2. 数据在内存中全部是以Unicode编码的,但是当你的数据用于网络传输,或者储存到硬盘中,必须是以非Unicode编码(utf-8,gbk等)。

      3. 英文:

        1. str:'hello'

          ​ 内存中的编码方式:Unicode

          ​ 表现形式:'hello'

        2. bytes:

          ​ 内存中的编码方式:非Unicode

          ​ 表现形式:b'hello'

      4. 中文

        1. str:

          ​ 内存中的编码方式:Unicode

          ​ 表现形式:'中国'

        2. bytes

          ​ 内存中的编码方式:非Unicode #Utf-8

          ​ 表现形式:b'xe4xb8xadxe5x9bxbd'

    #str -->bytes
    s1 = '中国'
    b1 = s1.encode('utf-8')#编码
    print(b1)
    b1 = s1.encode('gbk')#编码
    
    bytes-->str
    b1 = b'xe4xb8xadxe5x9bxbd'
    s2 = b1.decode('utf-8')
    print(s2)
    
    
    #gbk ---> utf-8
    b1 = b'xd6xd0xb9xfa'
    s = b1.decode('gbk')
    b2 = s.encode('utf-8')
    print(b2)# b'xe4xb8xadxe5x9bxbd'
    
  • 相关阅读:
    React项目安装过程及node版本太老引发问题
    利用git上传、拉取代码,密码和用户名字不正确时,如何操作
    Vue和react的优缺点
    同步异步差别
    深拷贝和浅拷贝区别
    vue项目引用Swiper.js在低版本浏览器出现错误
    uniApp h5分享实现
    input上传图片样子太丑了,实现美化的tips
    关于cli3.0跨域的处理
    webpack4.0
  • 原文地址:https://www.cnblogs.com/wang-xing-hao/p/10877920.html
Copyright © 2020-2023  润新知