zoukankan      html  css  js  c++  java
  • day07——数据类型补充、坑、二次编码

    day07

    数据类型补充

    str

    • 首字母大写:capitalize()
    name = 'alex'
    name1 = name.capitalize()
    print(name1)
    
    • 每个单词首字母大写:title()
    name = 'alex wusir'
    print(name.title())
    
    • 大小写反转:swapcase()
    name = "Alex"
    print(name.swapcase())
    
    • 居中(填充):center(总占位数,填充内容)
    name = 'alex'
    print(name.center(20))
    
    name = 'alex'
    print(name.center(20,'-'))
    
    • -09查找:find(内容) 从左向右只查一个,返回索引位置,没有就返回-1

    ​ index(内容):从左向右只查一个,返回索引位置,查找不存在的就报错

    name = "alelx"
    print(name.find("b"))   #find查找不存在的返回-1
    print(name.index("b"))   #index查找不存在的就报错
    
    • 拼接:'符号'.join()
    name = "al3x"
    print("_".join(name))  ***
    
    • 格式化:1)%s %d 、2)f 、3)name.format()

    {}配合format(添加内容个数与{}个数对应)

    {数字}配合format(内容),按照索引值

    {字母}配合format(字母 = ’内容‘) 按照关键字进行填充

    # 1.%s
    # 2.f
    # 3.name.format()
    # name = "alex{},{},{}"
    # print(name.format(1,2,3)) # 按照顺序位置进行填充
    # name = "alex{2},{0},{1}"
    # print(name.format("a","b","c")) # 按照索引值进行填充
    # name = "alex{a},{b},{c}"
    # print(name.format(a=1,c=11,b=67)) # 按照关键字进行填充
    

    -*字符串都会开辟一个新空间

    # + * 开辟新的空间
    
    # name = "alex"
    # name1 = "wusir"
    # print(id(name))
    # print(id(name1))
    # print(id(name + name1))
    

    list

    定义方式:

    list('123')
    
    

    其他方法:

    排序:sort() 默认升序,如果是中文,以码来排序

    降序:sort(reverse = True)

    lst = [1,2,23,234,435,36,23,213421,421,4231,534,65]
    lst.sort()
    print(lst)
    
    lst = ["你好","我好"]
    lst.sort()
    print(lst)
    lst.sort(reverse=True) # 降序
    
    

    反转:reverse() 或者 lst[::-1]

    # lst = [1,2,3,4453,5,6,7]
    # print(lst[::-1])  
    # lst.reverse()  # 反转
    # print(lst)
    
    # lst = [1,2,3,4,5123,21345,231123,4,1235,234,123]
    # lst.sort()
    # lst.reverse()
    # print(lst)
    
    

    查找: index

    面试题:

    # lst = [[]]
    # new_lst = lst * 5
    # new_lst[0].append(10)
    # print(new_lst)
    
    # lst = [1,[]]
    # new_lst = lst * 5
    # new_lst[0] = 10
    # print(new_lst)
    
    # lst = [1,[]]
    # new_lst = lst * 5
    # new_lst[1] = 10
    # print(new_lst)
    
    

    把一个列表追加到另外一个列表中

    +*元素都是共用的

    方式一:
    lst.extend(lst1)
    print(lst)
    方式二:
    print(lst+lst1)
    
    new_lst = lst * 5
    print(id(new_lst[0]),id(new_lst[0]))
    
    # lst = [[]]
    # new_lst = lst * 5
    # new_lst[0].append(10)
    # print(new_lst)
    
    

    tuple

    (1,)也是元组

    # tu = (1,)   # (1,)是元组# print(type(tu))
    
    

    (1) 括号里数据本身的类型

    # tu = ("12")  # 数据类型是()中数据本身
    # print(type(tu))
    
    

    元组 + * 不可变共用,可变也共用

    dict

    定义字典:

    dict(key = 1,key2 = 2)
    
    

    随机删除:popitem

    返回的是被删除的键值对,以元组的形式:(键,值),python3.6以上默认删除最后一个

    # dic = {"key":1,"key2":2,"key3":56}
    # print(dic.popitem())  # 返回的是被删除的键值对(键,值)
    # print(dic)
    # python36 默认删除最后一个
    
    

    fromkeys("可迭代的键",共用的值)

    # dic = {}
    # dic.fromkeys("123",[23]) # 批量添加键值对{"1":[23],"2":[23],"3":[23]}
    # print(dic)
    
    
    # dic = dict.fromkeys("123456789",1) # 批量添加键值对"键是可迭代对象",值 -- 会被共用
    # dic["1"] = 18
    # print(dic)
    
    

    set

    set() ——空集合

    {} ——空字典

    定义集合:

    set('alex')     #迭代添加
    
    

    bool: False

    数字:0

    字符串:""

    列表:[]

    元组:()

    字典:{}

    集合:set()

    其他:None

    数据类型之间的转换

    # list  tuple
    lst = ['1', '2', '3']
    tu = tuple(lst)
    print(tu)
    
    # tuple list
    tu = ('1', '2', '3')
    lst = list(tu)
    print(lst)
    
    ————————————————————————————————
    # str list
    name = "alex"  
    print(name.split())
    
    # list str
    lst = ["1","2","3"] 
    print(''.join(lst))
    
    —————————————————————————————————
    # dict -- str
    dic = {"1":2}
    print(str(dic),type(str(dic)))
    
    str -- dict
    # print(dict("{1:1}"))  # 报错
    
    —————————————————————————————————
    # set - list
    s = {1,2,3,4}
    print(list(s))
    
    # list - set
    lst = [1, 2, 3, 4]
    print(set(lst))
    
    

    python数据类型:

    # python数据类型:
    # 可变:
    # list ,dict ,set
    # 不可变:
    # int bool str tuple
    # 有序:
    # list,tuple,str,int,bool
    # 无序:
    # dict,set
    # 取值方式:
    # 索引: str list tuple
    # 直接: set ,int ,bool
    #   键: dict
    
    

    lst = [1,2]
    for i in lst:
        lst.append(3)
    print(lst)  # 死循环
    
    

    列表删除——从后向前删除

    错误事例:
    lst = [1,2,3,4]
    for i in lst:
        lst.pop()
    print(lst)   # [1,2]
    
    错误事例:
    lst = [1,2,3,4]
    for i in lst:
        lst.pop(0)
    print(lst)  # [3,4]
    
    错误事例:
    lst = [1,2,3,4]
    for i in lst:
        lst.remove(i)
    print(lst)   # [2,4]
    
    成功事例:
    lst = [1,2,3,4,6]
    for i in range(len(lst)):
        lst.pop()
    print(lst)
    
    lst = [1,2,3,4,6]
    for i in range(len(lst)-1,-1,-1):
        del lst[i]
    print(lst)
    
    lst = [1,2,3,4,6]
    for i in range(len(lst)):
        del lst[-1]
    print(lst)
    
    # 创建一个新的列表,删除旧的列表
    lst = [1,2,3,4,5,6]
    lst1 = lst.copy()
    for i in lst1:
        lst.remove(i)
    print(lst)
    

    删除字典的坑

    字典迭代的时候不能增加不能删除

    集合和字典都是迭代的时候不能增加不能删除

    dic = dict.fromkeys("12345",1)
    dic1 = dic.copy()
    for i in dic1:
        dic.pop(i)
    print(dic)  # 报错
    
    dic = dict.fromkeys("12345",1)
    print(dic)
    for i in dic:
        dic[222] = 666
    print(dic)  # 报错
    
    dic = dict.fromkeys("12345",1)
    dic1 = dic.copy()
    for i in dic1:
        dic.pop(i)
    print(dic)
    

    二次编码

    密码本:

    ascii ——没有中文

    gbk ——英文8b 1B 中文16b 2B

    unicode ——英文16b 2B 中文 32b 4B

    utf-8 —— 英文8b 1B 欧洲16b 2B 亚洲24b 3B

    # name = "你好啊"
    # s1 = name.encode("utf-8") # 编码  9
    # s2 = name.encode("gbk") # 编码  6
    # s2 = s1.decode("utf-8") # 解码
    # print(s2.encode("gbk"))
    

    以什么编码集(密码本)进行编码就要用是什么编码集(密码本)解码

  • 相关阅读:
    JSON.stringify 方法模拟
    leetcode算法:1648. 销售价值减少的颜色球
    Dynamics 365 Marketing Trail
    Power Automate expression中的 string 相关公式
    Adaptive Card 和 Power Automate
    Power Automate Approval 功能初始化失败
    linux编程-csh
    王道论坛_PC端播放和下载视频
    记树莓派的一个项目_RGB1602的实际使用
    提取植物大战僵尸静态资源
  • 原文地址:https://www.cnblogs.com/NiceSnake/p/11178250.html
Copyright © 2011-2022 走看看