zoukankan      html  css  js  c++  java
  • Day 7 二次编码,基础类型补充以及未来可能遇到的难点和坑

    str:不可变
    1.1首字母大写:
    name ='alex'
    name1 = name.capitalize()
    print(name1)

    1.2每个单词首字母大写
    name ='alex wusir'
    name1 = name.title()
    print(name1)
    print(name.title())

    1.3大小写反转
    name = 'Alex'
    name1 = name.swapcase()
    print(name1)
    print(name.swapcase())

    1.4 居中---填充
    name = 'alex'
    name1 = name.center(20,'-')
    print(name1)
    print(name.center(20,"-"))

    1.5 查找 从左向右 只查找一个
    name = 'alexaaal1'
    name1 = name.find('e') #只能查找一个,并且输出值为索引。
    print(name1)
    print(name.find('e'))

    1.6 拼接
    name = 'alex'
    name1 = ''.join(name)
    print(name1)
    print('
    '.join(name))

    1.7 格式化
    1.格式化
    2.f
    3.name.format()
    name = 'alex{},{},{}'
    name1 = name.format(1,2,3)
    print(name1)# 按照顺序位置进行填充

    name = 'alex{k1},{k},{k3}'
    name1 = name.format(k=1,k1=2,k3=3)
    print(name1)# 按照关键字进行填充

    name = 'alex{2},{0},{1}'
    print(name.format('a','b','c'))# 按照索引值进行填充

      • 开辟新的空间
        name = "alex"
        name1 = "wusir"
        print(id(name))
        print(id(name1))
        print(id(name + name1))#地址都不同

    list:
    定义方式:
    list("123")

    其他方法:
    lst = [1,2,23,234,435,36,23,213421,421,4231,534,65]
    lst.sort() # 排序 (升序)
    print(lst)

    lst = ["2233","12"]
    lst.sort() # 排序 (默认升序)
    print(lst)

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

    lst = [1,2,3,4455,5,6,7]
    print(lst[::-1])1.反转
    lst.reverse()2.反转
    print(lst)

    lst = [1,2,3,4,5123,21345,231123,4,1235,234,123]
    lst.sort()
    lst.reverse() 先升序,在反转
    print(lst)

    面试题
    lst =[[]]
    new_lst = lst * 5
    new_lst[0].append(10)
    print(new_lst)
    答:
    new_lst = [[10],[10],[10],[10],[10]]

    lst = [1,[]]
    new_lst = lst * 5
    new_lst[0] = 10
    print(new_lst)
    答:
    new_lst = [[10,[]],[1,[]],[1,[]],[1,[]],[1,[]]]

    lst = [1,[]]
    new_lst = lst * 5
    new_lst[1] = 10
    print(new_lst)
    答:
    new_lst = [[1,10],[1,[]],[1,[]],[1,[]],[1,[]]]

    方式一:
    lst.extend(lst1)
    print(lst)
    方式二:
    print(lst+lst1)
    new_lst = lst * 5
    print(id(new_lst[0]), id(lst[0]))#地址相同

    lst = [[]]
    new_lst = lst * 5
    new_lst[0].append(10)
    print(new_lst)
    答:
    new_lst = [[10],[10],[10],[10],[10]]

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

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

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

    dict:定义一个字典:
    print(dict(k = 1,k2 = 2))

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

    dic = {}
    dic1 = dic.fromkeys("123",[23])
    print(dic1)

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

    set:
    set()---空集合
    {}---空字典
    定义集合:
    print(set('alex')) #迭代添加

    s = {1,2,3,4} #多运行几次会出现错误答案
    s.update("今天") # 迭代添加
    print(s)

    bool: False 除了下列表示bool为0的之外,剩下的都为真。
    数字: 0
    字符串: ""
    列表:[]
    元组:()
    字典:{}
    集合: set()
    其他: None

    数据类型之间转换
    list转tuple
    temp_list = [1,2,3,4,5]
    print(tuple(temp_list))

    tuple转list
    tuple = (1,2,3,4,5)
    print(list(tuple))

    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)))

    set -- list

    list -- set
    ''.join(list)

    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)
    答:lst = [1,2]

    lst = [1,2,3,4]
    for i in lst:
    lst.pop(0)
    print(lst)

    lst = [1,2,3,4]
    for i in lst:
    lst.remove(i)
    print(lst)

    成功删除的方式:
    lst = [1,2,3,4,5,6]
    for i in range(len(lst)):
    lst.pop()
    print(lst)

    lst = [1,2,3,4,5,6]
    for i in range(len(lst)-1,-1,-1):
    del lst[i]
    print(lst)

    lst =[1,2,3,4,5,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)# 字典的迭代的时候改变了原来的大小(不能加不能删)
    for i in dic:
    dic[i] = '123'
    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"))

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

    今日总结
    1.编码解码
    编码:将文字转换字节形式 encode
    解码:将字节转换文字形式 decode

    2.基础数据类型补充:
    str:
    首字母大写 capitalize
    每个单词首字母大写 title
    大小写反转swapcase
    居中--填充center
    查找:find index
    拼接 ''.join()
    格式化:name.format(a)
    list:
    排序(默认是升序)降序sort(reverse=True)
    反转 reverse
    查找 index
    统计 count
    + * 元素是共用的
    面试题

    tuple:
    (1,)#元组
    (1)#括号里的数据本身

    dict:
    popitem
    fromkeeys('可迭代的键',共用的值)--坑
    dict(key =1,key2 = 2)

    set:
    set()---空集合
    set('alex')#迭代添加


    列表删除--从后向前删除
    创建一个新的列表,删除旧的列表

    字典删除--循环的时候不能改变源数据的大小(可以改变值)
    创建一个新字典,删除旧的字典
    
    集合删除--循环的时候不能改变源数据的大小
    

    类型转换
    list--str join
    str--list split

  • 相关阅读:
    CentOS7 安装 Mysql5.6.40
    CentOS7 安装 Python3.6.5
    CentOS7 添加新用户并授权 root 权限
    02 常用数据结构
    01 常见算法
    初识 Docker
    glob & fnmatch -- 使用Unix style通配符
    Pillow6 起步
    leetcode70. 爬楼梯 🌟
    leetcode69. x 的平方根 🌟
  • 原文地址:https://www.cnblogs.com/zhuzhizheng/p/11178923.html
Copyright © 2011-2022 走看看