美文网首页
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