zoukankan      html  css  js  c++  java
  • is id() == 从内存的最小化占用角度解释 我是孕育者,我也应该这样设计 变,必然伴随着加法 一个list是否可以执行set()

    def f(a, b):
        print(a is b, b is a, a == b, a.__eq__(b), id(a), id(b))
    
    
    f(2, 2)
    f([2], [2])
    f('2', '2')
    f(2.2, 2.2)
    f((2.2), (2.2))
    f({2: 2}, {2: 2})
    
    True True True True 1832760416 1832760416
    False False True True 31928520 31928584
    True True True True 30448416 30448416
    True True True True 30085336 30085336
    True True True True 30085336 30085336
    False False True True 31092096 31092456
    

      

    从内存的最小化占用角度解释

     变,必然伴随着加法

    # set()  TypeError  unhashable type:'list'

    具有可变性(mutable)的值,不可哈希化

    [2,2,3,4] 可以执行set(l)
    [[2],[2],[4]] 由于其中的元素具有可变性,故不可进行set(l)操作

    一个list是否可以执行set(),取决于其元素,即待set的各个对象是否具有不变性









      

  • 相关阅读:
    第一次实验
    pta12
    《暗时间》读书笔记
    案例分析
    软件工程第二次作业
    阅读任务
    20210311_软工_准备工作
    学习总结
    第十四周学习总结&实验报告
    第十三周课程总结
  • 原文地址:https://www.cnblogs.com/rsapaper/p/9064860.html
Copyright © 2011-2022 走看看