zoukankan      html  css  js  c++  java
  • 编码数组字典

    s = 'Hello Hi 3nihhao'
    print(s.capitalize()) #  只有首字母大写Hello hi 3nihhao
    print(s.swapcase())   # 大小写反转hELLO hI 3NIHHAO
    print(s.title())  # Hello Hi 3Nihhao # 数字后也会大写
    print(s.center(20, "*"))  # **Hello Hi 3nihhao**  不加填充物 默认是空格
    print(s.find('l')) # 2 找到第一个就返回,找不到 就返回-1
    # print(s.index('Q'))  #  index 找不到报错
    
    #  数组
    l1 = ['太白', '123', '女神', '大壮']
    print(l1.index('太白')) # 返回第一个出现的位置
    # sort
    l1 = [5, 4, 3, 7, 8, 6, 1, 9]
    l1.sort() # 不会形成新列表, 是对原列表排序, 默认从小到大
    print(l1)  # [1, 3, 4, 5, 6, 7, 8, 9]
    l1.sort(reverse=True) #  排序 [9, 8, 7, 6, 5, 4, 3, 1]
    print(l1)
    
    l2 = [5, 4, 3, 7, 8, 6, 1, 9]
    l2.reverse()
    print(l2)  # 列表的反转
    
    # 列表相加 相乘
    l1 = [1, 2, 3, 4]
    l2 = [4, 5]
    print(l1+l2) # 相加
    l3 = l1*3 # 列表相乘 重复3次
    print(l3)
    
    
    # 删除奇数位置
    l1 = [11, 22, 33, 44, 55]
    del l1[1::2] #  [11, 33, 55]
    print(l1)
    # 注意下面的方式是错误的,因为每删除前面一个元素,索引值会变化,后面的索引值会往前面移动一位
    # for i in range(len(l1)):
    #     if i % 2 == 1:
    #         l.append(l1[i])
    # print(l)
    
    # 可以倒序删除,因为删除后面的元素,不会对前面元素的索引值改变,每次多是循环前面的索引
    l4 = [11, 22, 33, 44, 55]
    for i in range(len(l4)-1, -1, -1):  # 索引最大值是长度-1, 第2个-1是顾头不顾尾, 第三个-1是反向步长度
        if i % 2 == 1:
            l4.pop(i)  # 删除之后前面的元素不受影响,后面的元素索引值往前挪动
    print(l4)
    # 注意:循环一个列表的时,最好不要改变列表的大小,这样会影响你的最终的结果。
    
    
    # 字典 update
    dic = {'name': '太白', 'age': 18}
    dic.update(hobby='运动', hight='175', name='张三') # 无返回值 ,直接改原始dic
    print(dic)  # {'name': '张三', 'age': 18, 'hobby': '运动', 'hight': '175'} 无则添加 有责改变
    dic.update(((1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')))
    print(dic)  # {'name': '张三', 'age': 18, 'hobby': '运动', 'hight': '175', 1: 'a', 2: 'b', 3: 'c', 4: 'd'}
    
    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}
    print(dic2)  # {'name': 'alex', 'weight': 75}
    
    
    # fromkeys
    dic = dict.fromkeys('abc', 100)
    print(dic)  # {'a': 100, 'b': 100, 'c': 100}  迭代着增加
    dic = dict.fromkeys([1, 2, 3], 'alex')
    print(dic)  # {1: 'alex', 2: 'alex', 3: 'alex'}
    #  注意这个坑, 如果一个改变了一个元素的值,其他元素的值也会改变
    dic = dict.fromkeys([1, 2, 3], [])  # {1: [666], 2: [666], 3: [666]}
    dic[1].append(666)
    print(dic)
    
    # 将字典中键含有'k'元素的键值对删除。
    dic = {'k1': '太白', 'k2': 'barry', 'k3': '白白', 'age': 18}
    # 这种方式是错误的,循环时字典大小不能 RuntimeError: dictionary changed size during iteration
    # for  key in dic:
    #     if 'k' in key:
    #         dic.pop(key)
    # print(dic)
    # 可以将要删除的值 转化为list 寻魂
    l = []
    for key  in dic:
        if 'k' in key:
            l.append(key)
    print(l)  # ['k1', 'k2', 'k3']
    
    for i in l:
        dic.pop(i)
    print(dic)    # {'age': 18}
    
    
    # 方式2
    dic = {'k1': '太白', 'k2': 'barry', 'k3': '白白', 'age': 18}
    for i  in list(dic.keys()):
        if 'k' in i:
            dic.pop(i)
    print( dic)   # {'age': 18}
    
    在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为非Unicode编码比如:UTF-8编码。
    # #str ----> bytes str数据想要存储到文件或者传输出去,那么直接是不可以的,
    # 要将str数据转化成bytes数据就可以了。
    s1 = '中国'
    b = s1.encode('utf-8')
    print(b)  # b'xe4xb8xadxe5x9bxbd'
    
    s2 = s1.encode('gbk')
    print(s2)   # b'xd6xd0xb9xfa'
    
    # bytes ---> str
    b1 = b'xe4xb8xadxe5x9bxbd' # 以utf-8编码,也要用utf-8解码
    s1 = b1.decode('utf-8')
    print(s1)
    
    
    # 那么gbk编码的bytes如何转化成utf-8编码的bytes呢?
    # 不同编码之间,不能直接互相识别,借助Unicode进行转换
    b1 =  b'xe4xb8xadxe5x9bxbd'  # 这是utf-8编码bytes类型的中国
    # b2 =  b'xd6xd0xb9xfa'   # 这是gbk编码bytes类型的中国
    
    s = b1.decode('utf-8') # utf-8先转为unicode
    b3 = s.encode('gbk')  # unicode 转为gbk
    print(b3)
    
  • 相关阅读:
    dnc开源梦之队2018 开源项目精选集
    2018年4月更新70多个公司dnc招聘职位
    首届.NET Core开源峰会
    回顾Google IO 2016 -Keynote【图解】
    SharedPreferences实现记住密码功能
    Android 五大布局
    Visual Studio Code 编辑器相关
    你好!2015!
    Get Start StrangeIOC for Unity3D
    Unity3d Web Player 的server端联网配置
  • 原文地址:https://www.cnblogs.com/jnsn/p/12757549.html
Copyright © 2011-2022 走看看