【发布时间】:2020-03-23 01:27:55
【问题描述】:
我们知道元组是不可变的,但是如果一个元组内部包含一个列表,我们可以附加一个相应的列表吗?
t=(1,2,3,"hi",[2,3,4],True)
t[4].append(7)
print(t)
输出
(1,2,3,"hi",[2,3,4,7],True)
【问题讨论】:
-
为什么同一个问题要问两次? Here 如果它已经被标记为重复?
我们知道元组是不可变的,但是如果一个元组内部包含一个列表,我们可以附加一个相应的列表吗?
t=(1,2,3,"hi",[2,3,4],True)
t[4].append(7)
print(t)
输出
(1,2,3,"hi",[2,3,4,7],True)
【问题讨论】:
因为在底层,python 不是保存数组本身,而是保存它的引用。所以只要引用不改变就可以了!!
想象一下内存地址
0x00 = 1
0x01 = 2
0x02 = 3
0x03 = "hi"
0x04 = 0x10
0x05 = True
0x10 = 2
0x11 = 3
0x12 = 4
如果向数组中添加更多元素,0x00 和 0x05 之间的值不会改变,这就是 python 上的不可变行为
【讨论】: