课程
/后端开发
/Python
/初识Python
为什么是这个结果?这个程序只是对变量L进行了操作,并没有对 t 或 t[2] 操作啊!为什么结果还会改变变量t?!搞不清这什么逻辑!
2016-07-27
源自:初识Python 4-9
正在回答
就像是公司定义的部门是固定不变的 但是内部人员是流动的 当然真个比喻不完全正确 还涉及到list本身内部可变这一重要概念
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。
因为L=t[2],在这里t[2]即表示['A’,'B'],修改前L[0]='A',L[1]='B',重新赋值后t[2]变为['X','Y']
斯蒂芬大夫 提问者
qq_柠檬墨汁_03731878 回复 斯蒂芬大夫 提问者
突然觉得楼主说的好有道理
nemo_wang3687936 回复 斯蒂芬大夫 提问者
斯蒂芬大夫 提问者 回复 nemo_wang3687936
L=t[2] 修改L 就把t[2]的改了
举报
学python入门视频教程,让你快速入门并能编写简单的Python程序
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号