python 創建二維數組


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方法進行拷貝就叫做深拷貝,外圍和內部元素都進行了拷貝對象本身,而不是引用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM