美文网首页
python中同一ID的变量值不跟随改变

python中同一ID的变量值不跟随改变

作者: 肥树仙僧 | 来源:发表于2018-08-22 21:18 被阅读0次

    a,c为同一ID的两个变量,但是将a的值改变后,c的值不改变。
    但是如果是list,ll和lll为同一id的两个变量,ll改变后,lll也会随之改变。
    为什么?

    # ID函数举例
    a = 100
    b = 200
    print(id(a))
    print(id(b))
    
    c = a
    print(id(c))
    
    # 如果a跟c指向一份数据,则更改a的值同样也会更改c的值
    # 但是,显示结果并非如此,为什么?
    a = 102
    print(a)
    print(c)
    #########################################################################
    1935177888
    1935181088
    1935177888
    102
    100
    
    # 通过ID可以直接判断出分片是重新生成了一份数据还是使用的同一份数据
    l = [3,3,4,5,6,34,6,67,4,45,34]
    ll = l[:]
    lll = ll
    # 如果两个id值一样,则表明分片产生的列表是使用的同一地址的同一份数据
    # 否则,则表明分片是重新生成了一份数据,即一个新的列表,然后把数据值拷贝到新列表中
    print(id(l))
    print(id(ll))
    print(id(lll))
    
    # 通过id知道,ll和lll是同一份数据,验证代码如下
    l[1] = 100
    print(l)
    print(ll)
    
    ll[1] = 100
    print(ll)
    print(lll)
    ###############################################################################
    1652787150984
    1652785679368
    1652785679368
    [3, 100, 4, 5, 6, 34, 6, 67, 4, 45, 34]
    [3, 3, 4, 5, 6, 34, 6, 67, 4, 45, 34]
    [3, 100, 4, 5, 6, 34, 6, 67, 4, 45, 34]
    [3, 100, 4, 5, 6, 34, 6, 67, 4, 45, 34]
    

    相关文章

      网友评论

          本文标题:python中同一ID的变量值不跟随改变

          本文链接:https://www.haomeiwen.com/subject/sbhuiftx.html