day07 总结

元组内置方法

什么是元组(tuple):只可取不可更改的列表,元组一创建就被写死了

  1. 作用:元组一创建就被写死了

  2. 定义方式:()内用逗号隔开多个元素(可以为任意数据类型)

    如果元组只有一个元素,必须得加逗号

  3. 使用方法

    1. 索引取值
    2. 索引切片
    3. for循环
    4. 成员运算
    5. len长度
    6. index获取元素索引
    7. count计数
  4. 有序or无序

    有序

  5. 可变or不可变

    压根没有这一说

定义元祖--》占用内存小--》写死了

字典内置方法

  1. 作用

    储存多个数据,对每个数据具有描述

  2. 定义方式

    {}内用逗号隔开多个键key(具有描述意义,不能为可变数据类型):值value(任意数据类型)对

  3. 使用方式

    1. 按key取值/按key修改值
    2. 添加值,没有就添加,有就修改
    3. for循环
    4. 成员运算
    5. len长度
    6. keys/values/items
    7. get 获取(没有就返回None,可以给定一个默认值
    8. update 更新(等同于list里的extend)
    9. fromkeys
    10. setdefault(只添加不修改)
  4. 有序or无序

    无序

  5. 可变or不可变

    可变

散列表/哈希表存储数据

相比较列表,哈希表插入/删除数据更快

  1. 首先对key做了哈希处理(能对所有数据类型都可以哈希处理):梅森旋转算法(生成伪随机数)--> 通过哈希处理对于每个key他都可以生成一个序列(永不重复,相同的东西进入哈希处理,结果相同)
  2. 使用哈希函数对刚刚生成的序列(纯数字),对纯数字除9取余(0,1,2,3,4,5,6,7,8)

集合内置方法

什么是集合:交集/并集/补集/差集

  1. 作用

    1. 进行上述运算
    2. 去重
    3. 乱序 --》基于散列实现的
  2. 定义方式

    {}内以逗号隔开多个元素(不能可为变数据类型)

    空字典
    s = {}
    空集合
    s = set{}

    s = {'a', 'a', 'a', 'a', 1, 'v', 2, 2, 'c', 3, 3, 4, 5, 6} # 对于数字而言,不会乱序;但是对于其他,就乱序
    print(s) # {1, 2, 'a', 'c', 3, 4, 5, 6, 'v'}

  3. 使用方法

    1. 并集

      print(pythoners | linuxers)

    2. 交集

      print(pythoners & linuxers)

    3. 差集

      print(pythoners - linuxers)

    4. 补集

      print(pythoners ^ linuxers)

    5. add

      pythoners.add('oscar')

    6. pop 随机删除一个

      pythoners.pop()

  4. 有序or无序

    无序

  5. 可变or不可变

    可变

数据类型总结

存值个数

存一个值:整型/浮点型/字符串
存多个值:列表/元组/字典/集合

有序or无序

有序:字符串/列表/元组(序列类型)
无序:字典/集合

可变or不可变

可变:列表/字典/集合
不可变:整型/浮点型/字符串/元组

深浅拷贝(只针对可变数据类型)

深浅拷贝

拷贝

当y为x的拷贝对象,如果x为不可变类型,x变化y不变;如果x为可变类型,x变化y也变。

浅拷贝

如果list2是list1的浅拷贝对象,则list1内的不可变元素发生了改变,list2不变;如果list1内的可变元素发生了改变,则list2会跟着改变。

深拷贝

如果list2是list1的深拷贝对象,则list1内的不可变元素发生了改变,list2不变;如果list1内的可变元素发生了改变,list2也不会变,即list2永远不会因为list1的变化而变化。

猜你喜欢

转载自www.cnblogs.com/whkzm/p/11529925.html