zoukankan      html  css  js  c++  java
  • PythonDay06

    第六章

    今日内容

    • 小数据池

    • 深浅拷贝

    • 集合

    小数据池

    • == is id

      == 判断两个值是否相等

      is --- 是 判断两个值的内存地址是否相等

    • 代码块:一个py文件,一个函数,一个模块,终端中每一行都是代码块

    代码块中有自己的内存空间:int ,str ,bool

    int:-2~正无穷

    a = -6
    b = -6
    print(a is b)

    a = 1000
    b = 1000
    print(id(a), id(b))
    print(a is b)

    str:

    • 字符串:

      • 定义字符串的时候是任意的

      • 字符串(字符和数字)进行乘法时总长度不超过20

      • 特殊符号(中文,符号)进行乘法的 时候乘以0 或 1

    bool:

    True,False

    小地址池 -- int,str , bool

    int:-5~ 256

    str:

    • 字母,数字长度任意

    • 字符串进行乘法的时候总长度不能超过20

    • 特殊符号进行乘法的时候只能乘 0

    驻留机制:节省内存空间,提升效率(减少了开辟空间和销毁空间的耗时)

    深浅拷贝

    赋值, =
    a = [1,2,3,4]
    b = a
    print(id(a),id(b))
    print(a is b)
    # a和b的内存地址一样,任何一个改,其他的改都改
    浅拷贝
    # 在列表的元素中,元素是列表的情况下,拷贝的是内存地址
    # 当内部的元素发生改变时,拷贝的列表和原列表都发生改变
    a = [1,2,3,[4,5]]
    b = a[:]  
    # 浅拷贝a[-1].append(6)
    print(b)
    深拷贝
    import copy  # 导入 copy模块
    a = [1,2,3,[4,5],6]
    b = copy.deepcopy(a)
    print(id(a[-2]))
    print(id(b[-2]))

    print(a)
    print(b)
    print(a == b)
    print(id(a),id(b))
    print(a is b)
    # 不可变数据类型内存地址共用,可变数据类型新开辟一个空间 不管嵌套多深

    集合

    集合中的元素要求是不可变的并且还是唯一的,我们就利用它是唯一来做去重

    集合 -- set

    s = {1,2,3,4}

    • 集合就是一个没有值得字典,无序,可变;

    • 天然集合去重

      s = {1,1,2,3,4,1,1,1,1}

    s = {}       # 空字典
    s1 = set()   # 空集合
    print(type(s1))
    print(type(s))
    集合的增:
    s = set()
    s.add('one')
    s.update('two') #不建议使用
    set('12345') #后面跟可迭代对象,只能迭代添加到空集合
    集合的删:
    s = {100, 200 ,500 , 10 , 0.1, 0.5}
    s.remove(500) # 通过元素删除
    s.clear() # 清空列表
    s.pop() # 随机删除
    集合的改

    先删除,后添加,没有改的方法

    集合的查

    for循环

    其他操作

    s = {1, 24, 25, 48, 98, 56}

    s_ = {1, 24, 25}

    • 差集 -

    print(s - s1)
    print(s1 - s)
    • 交集 &

    print(s & s1)
    
    • 并集 |

    print(s | s_)

    • 反交集 ^

    print(s ^ s_)

    • 子集 返回一个布尔值

    print(s > s_)

    • 父级

    print(s_ > s )

    • 冻结集合

    print(frozenset({1, 24, 5,4}))

  • 相关阅读:
    static的全部用法收集整理
    文思创新复试及一些自己的思考
    “一碗牛肉面”引发的管理难题
    信必优面试实录
    我做PM(项目经理)这段时间...
    什么是面向对象?
    沟通
    体会Bind和Eval的不同用法
    北京艾德思奇科技有限公司面试实录
    今天去sony公司面试实录
  • 原文地址:https://www.cnblogs.com/xuyuwei/p/11323910.html
Copyright © 2011-2022 走看看