当使用*运算符将包含列表的列表重复并创建新列表时,并不是直接复制元素,而且创建已有对象的引用,当修改其中一个值时,相应的引用也会被修改
例如:
>>> aList = [[1,2,3]] * 3
>>> aList
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
>>> aList[0][0] = 10
>>> aList
[[10, 2, 3], [10, 2, 3], [10, 2, 3]]
本文通过实例演示了在Python中使用*运算符重复列表时,如何由于对象引用而非深复制而导致的问题。当修改其中一个列表元素时,所有相关联的列表都会受到影响。
当使用*运算符将包含列表的列表重复并创建新列表时,并不是直接复制元素,而且创建已有对象的引用,当修改其中一个值时,相应的引用也会被修改
例如:
>>> aList = [[1,2,3]] * 3
>>> aList
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
>>> aList[0][0] = 10
>>> aList
[[10, 2, 3], [10, 2, 3], [10, 2, 3]]
612

被折叠的 条评论
为什么被折叠?