|  | 
 
3鱼币 
| 本帖最后由 Python初学者8号 于 2021-7-24 20:03 编辑 
 不是说tupel不可变吗  我有点不懂这里两个例子
 
 
 复制代码>>> list1=['A', 'B']
>>> t = ('a','b',list1)
>>> t
('a', 'b', ['A', 'B'])
>>> del list1
>>> t
('a', 'b', ['A', 'B'])
>>> list1
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    list1
NameError: name 'list1' is not defined
 有人说的是他的指向是不变的,那么我现在t2的和list1是同一个一个指向,list1从['A', 'B']改了到['x','y']之后而t2还是指向['A', 'B']这个我可以理解,可是如果是直接修改t[2][0]怎么就可以呢?我的下属不可以变,但是我的下属的下属可以变?
 
 
 复制代码>>> list1=['A', 'B']
>>> t = ('a','b',list1)
>>> t
('a', 'b', ['A', 'B'])
>>> list1 = ['x','y']
>>> t
('a', 'b', ['A', 'B'])
>>> t[2][0]='你'
>>> t
('a', 'b', ['你', 'B'])
>>> 
 我蒙了
 
元组不可变是指的内存地址元组中放一个列表,这个列表作为一个整体成为元组中的一个元素
 python中列表是可变的,但是改变列表不会改变列表的指向,也就是ID
 在元组中,只要各个元素的ID没有变化,在元组的层面,他没有发生改变
 
 打个比方
 你是一个搬家公司,负责搬运桌子,椅子和衣橱
 业主往衣橱里放帽子还是裤衩对于你来说都没有改变
 | 
 
最佳答案
查看完整内容 元组不可变是指的内存地址
元组中放一个列表,这个列表作为一个整体成为元组中的一个元素
python中列表是可变的,但是改变列表不会改变列表的指向,也就是ID
在元组中,只要各个元素的ID没有变化,在元组的层面,他没有发生改变
打个比方
你是一个搬家公司,负责搬运桌子,椅子和衣橱
业主往衣橱里放帽子还是裤衩对于你来说都没有改变 |