myList = [([0] * 3) for i in range(4)] myList[0][1] = 1 myList[1].append(2) print myList
/usr/bin/python /Users/li/PycharmProjects/Nowcoder_Practice/tmp.py
[[0, 1, 0], [0, 0, 0, 2], [0, 0, 0], [0, 0, 0]]
Process finished with exit code 0
myList = [[0]*3]*4 myList[0][1] = 1 print myList 為什么? 答案:list * n—>n shallow copies of list concatenated, n個list的淺拷貝的連接
思路一:利用切片操作和工廠方法list方法拷貝或使用copy模塊中的copy()函數就叫淺拷貝,只是拷貝了最外圍的對象本身,內部的元素都只是拷貝了一個引用而已。
思路二:利用copy中的deepcopy方法進行拷貝就叫做深拷貝,外圍和內部元素都進行了拷貝對象本身,而不是引用。