Python_函数对列表的修改是永久性的吗?——遗留问题(2018/1/14)----貌似查明原因(2018/1/16)

最近因为身体原因(拔牙,正畸)以及家庭琐事,耽误了Python的学习进度,相当于一周没有学习。

不过发现随着学习深入,难度在增加,第1章到第7章都是一遍过,第8章函数的部分,我看了两遍。

做题还是不顺畅。没关系,一点一点进步吧。后面要保持每天看书联系,不然就半途而废了(思想也有接不上的风险)

言归正传,8.4.1节 在函数中修改列表 中有一句话:在函数中对这个列表所做额任何修改都是永久性的。而且8.4.2节

还专门写了禁止函数修改列表的方法,传递副本(即,列表切片[:]).

但是事实上,我写了如下程序,函数内部的print和外部的print结果是不一样的。

函数内部的列表确实已经修改,但是外部打印结果发现没有更改。

Python_函数对列表的修改是永久性的吗?——遗留问题(2018/1/14)----貌似查明原因(2018/1/16)

2018/1/16 经过反复验证,貌似查明了原因:列表赋值语句要放在函数体外(包括列表副本切片和列表清零)。如果放在函数体内部对最终结果就是函数没有起作用,外部列表不变。如下为验证程序及其运行结果:

Python_函数对列表的修改是永久性的吗?——遗留问题(2018/1/14)----貌似查明原因(2018/1/16)