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的各个对象是否具有不变性









      

  • 相关阅读:
    回文字符串问题
    Linux添加nfs共享存储盘
    解读nginx配置
    制作自己的nginx rpm包
    linux编译安装时常见错误解决办法
    redis单机及集群安装
    nginx ssl
    vsftp配置详解
    Linux-文件系统的简单操作
    Linux-Vim编辑器
  • 原文地址:https://www.cnblogs.com/rsapaper/p/9064860.html
Copyright © 2011-2022 走看看