zoukankan      html  css  js  c++  java
  • python第五天

    python第五天

    id is ==

    # id 身份证号
    # i = 100
    # s = 'alex'
    # print(id(i))
    # print(id(s))
    # == 比较的是两边的值是否相等
    # l1 = [1, 2, 3]
    # l2 = [1, 2, 3]
    # print(l1 == l2)
    # s1 = 'alex'
    # s2 = 'alex '
    # print(s1 == s2)
    
    # is 判断的是内存地址是否相同
    # l1 = [1, 2, 3]
    # l2 = [1, 2, 3]
    # print(id(l1))
    # print(id(l2))
    # print(l1 is l2)
    
    s1 = 'alex'
    s2 = 'alex'
    print(id(s1))
    print(id(s2))
    print(s1 is s2)
    
    # id 相同,值一定相同
    # 值相同,id不一定相同
    
    

    代码块

    • 代码块:我们所有的代码都需要依赖代码块执行。

    • 一个文件就是一个代码块。

    • 交互式命令下一行就是一个代码块。

    • 两个机制: 同一个代码块下,有一个机制。不同的代码块下,遵循另一个机制。

    • 同一个代码块下的缓存机制。

      • 前提条件:同一个代码块内。
      • 机制内容:pass
      • 适用的对象: int bool str
      • 具体细则:所有的数字,bool,几乎所有的字符串。
      • 优点:提升性能,节省内存。
    • 不同代码块下的缓存机制: 小数据池。

      • 前提条件:不同代码块内。

      • 机制内容:pass

      • 适用的对象: int bool str

      • 具体细则:-5~256数字,bool,满足规则的字符串。

      • 优点:提升性能,节省内存。

        # i1 = 1000
        # i2 = 1000
        # i3 = 1000
        # l1 = [1,2,3]
        # l2 = [1,2,3]
        # print(id(l1))
        # print(id(l2))
        # print(id(i1))
        # print(id(i2))
        # print(id(i3))
        
        i = 800
        i1 = 800
        s1 = 'hfdjka6757fdslslgaj@!#fkdjlsafjdskl;fjds中国'
        s2 = 'hfdjka6757fdslslgaj@!#fkdjlsafjdskl;fjds中国'
        print(i is i1)
        print(s1 is s2)
        
        1. 总结:+
          1. 面试题考。
          2. 回答的时候一定要分清楚:同一个代码块下适用一个缓存机制。不同的代码块下适用另一个缓存机制(小数据池)
          3. 小数据池:数字的范围是-5~256.
          4. 缓存机制的优点:提升性能,节省内存。
        2. python基础数据类型之:集合 set。容器型的数据类型,它要求它里面的元素是不可变的数据,但是它本身是可变的数据类型。集合是无序的。{}。
          • 集合的作用:
            • 列表的去重。
            • 关系测试: 交集,并集,差集,.....
            • pass
    # 集合的创建:
    # set1 = set({1, 3, 'Barry', False})
    # set1 = {1, 3, '太白金星', 4, 'alex', False, '武大'}
    # print(set1)
    
    # 空集合:
    # print({}, type({}))  # 空字典
    # set1 = set()
    # print(set1)
    
    # 集合的有效性测试
    # set1 = {[1,2,3], 3, {'name': 'alex'}}
    # print(set1)
    
    # set1 = {'太白金星', '景女神',  '武大', '三粗', 'alexsb', '吴老师'}
    # 增:
    # add
    # set1.add('xx')
    # print(set1)
    
    # update迭代着增加
    # set1.update('fdsafgsd')
    # print(set1)
    
    # 删
    # remove
    # remove 按照元素删除
    # set1.remove('alexsb')
    #
    # print(set1)
    # pop 随即删除
    # set1.pop()
    # print(set1)
    
    # 变相改值
    # set1.remove('太白金星')
    # set1.add('男神')
    # print(set1)
    
    #关系测试:***
    #  交集
    # set1 = {1, 2, 3, 4, 5}
    # set2 = {4, 5, 6, 7, 8}
    # print(set1 & set2)
    
    # 并集:
    # print(set1 | set2)
    
    # 差集 -
    # print(set1 - set2)
    
    # 反交集
    # print(set1 ^ set2)
    
    # 子集
    # set1 = {1,2,3}
    # set2 = {1,2,3,4,5,6}
    # # print(set1 < set2)
    #
    # # 超集
    # print(set2 > set1)
    
    
    # 列表的去重 ***
    # l1 = [1,'太白', 1, 2, 2, '太白',2, 6, 6, 6, 3, '太白', 4, 5, ]
    # set1 = set(l1)
    # l1 = list(set1)
    # print(l1)
    
    # 用处:数据之间的关系,列表去重。
    
    • 深浅copy
    # 赋值运算
    # l1 = [1, 2, 3, [22, 33]]
    # l2 = l1
    # l1.append(666)
    # print(l1)
    # print(l2)
    
    # 浅copy
    # l1 = [1, 2, 3, [22, 33]]
    # l2 = l1.copy()
    # l1.append(666)
    # print(l1,id(l1))
    # print(l2,id(l2))
    
    
    # l1 = [1, 2, 3, [22, 33]]
    # l2 = l1.copy()
    # l1[-1].append(666)
    # print(id(l1[-1]))
    # print(id(l2[-1]))
    # print(id(l1[0]))
    # print(id(l2[0]))
    # print(l1)
    # print(l2)
    
    
    # l1 = [1, 2, 3, [22, 33]]
    # l2 = l1.copy()
    # l1[0] = 90
    # print(l1)
    # print(l2)
    
    
    
    # 深copy
    # import copy
    # l1 = [1, 2, 3, [22, 33]]
    # l2 = copy.deepcopy(l1)
    # # print(id(l1))
    # # print(id(l2))
    # l1[-1].append(666)
    # print(l1)
    # print(l2)
    
    
    
    # 相关面试题;
    # l1 = [1, 2, 3, [22, 33]]
    # l2 = l1[:]
    # l1[-1].append(666)
    # print(l1)
    # print(l2)
    # 浅copy: list dict: 嵌套的可变的数据类型是同一个。
    # 深copy: list dict: 嵌套的可变的数据类型不是同一个 。
    
  • 相关阅读:
    .NET互操作技术杂谈
    VS2008 Remote Debug HOW TO
    Entity Framework一对多关系或一对一关系删除子对象的方法
    Associations in EF Code First: Part 1 – Introduction and Basic Concepts
    如何管理Entity Framework中得事务
    在asp.net mvc3中编译视图文件
    entity framework中对关系使用默认规则与配置
    使用Entity Framework时动态生成lamda表达式
    asp.net mvc 身份验证中返回绝对路径的ReturnUrl
    Entity Framework 事务处理SaveChanges(false)
  • 原文地址:https://www.cnblogs.com/styxr/p/12158368.html
Copyright © 2011-2022 走看看