Python基础(七),七下基础答案


今日主要内容

  • 基础数据类型补充
  • 循环删除问题
  • 二次编码

一、基础数据类型补充

(一)int

(二)str

  • str.capitalize() 首字母大写,其余小写
    str.title() 每个用特殊字符隔开的首字母大写
    str.index() 计算元素索引位置
    str.find() 计算元素索引位置
    str.center() 将字符串居中
    str.format() 格式化输出
    str.swapcase() 大小写转换

(三)list

  • list.reverse() 将列表反向排列
    list.sort() 将列表排序
  • 面试题:

    lst = [1, 2, [3]]
    lst1 = lst * 2
    lst1[2].append(4)
    print(lst1)  # [1, 2, [3, 4], 1, 2, [3, 4]]
    
    • 列表在使用乘法时,将列表所有元素乘以倍数放到一个新列表中,所以相同元素的内存地址相同,元素共用

(四)dict

(五)类型转换

(六)基础数据类型总结

是否有序 是否可变 可否迭代 查看方式
int 有序(不支持索引) 不可变 不可迭代 直接查看
bool 不可变 不可迭代 直接查看
str 有序 不可变 可迭代 索引查看
tuple 有序 不可变 可迭代 索引查看
list 有序 可变 可迭代 索引查看
dict 无序 可变 可迭代 通过键查看
set 无序 可变 可迭代 直接查看

二、循环删除问题

(一)列表

  • 尝试一下利用循环列表删除元素,清空列表

    lst = [1, 2, 3, 4, 5]
    for el in lst:
      lst.remove(el)
    print(lst)  # [2, 4]
    
    • 发现列表并没有被清空,这是为什么呢?

(二)字典

  • 尝试一下利用循环字典删除键值对,清空字典

    dic = {"k1": 1, "k2": 2, "k3": 3}
    for i in dic:
      dic.pop(i)
    print(dic)
    # RuntimeError: dictionary changed size during iteration
    
    • 报错:迭代期间字典长度改变
  • 解决方法:

    • 复制一个副本,循环副本删除原字典
    dic = {"k1": 1, "k2": 2, "k3": 3}
    dic1 = dic.copy()
    for k in dic1:
      dic.pop(k)
    print(dic)  # {}
    

(三)集合

  • 尝试一下利用循环集合删除元素,清空集合

    st = {1, 2, 3, 4, 5}
    for el in st:
      st.remove(el)
    print(st)
    # RuntimeError: Set changed size during iteration
    
    • 报错:迭代期间集合改变长度
  • 解决方法:

    • 复制一个副本,循环副本删除原集合
    st = {1, 2, 3, 4, 5}
    st1 = st.copy()
    for el in st1:
      st.remove(el)
    print(st)  # set()
    

三、二次编码

(一)编码回顾

(二)编码与解码

  • Python3内存中使用的就是uncode
  • 硬盘中存储时选择的编码方式
    • gbk
    • utf-8
  • 用什么编码就要用什么解码

相关内容

    暂无相关文章

评论关闭