天天看點

python二維清單添加元素_python的二維數組操作

需要在程式中使用二維數組,網上找到一種這樣的用法: #建立一個寬度為3,高度為4的數組

#[[0,0,0],

# [0,0,0],

# [0,0,0],

# [0,0,0]]

myList = [[0] * 3] * 4

但是當操作myList[0][1] = 1時,發現整個第二列都被指派,變成

[[0,1,0],

[0,1,0],

[0,1,0],

[0,1,0]]

list * n—>n shallow copies of list concatenated, n個list的淺拷貝的連接配接

例:

>>> lists = [[]] * 3

>>> lists

[[], [], []]

>>> lists[0].append(3)

>>> lists

[[3], [3], [3]]

[[]]是一個含有一個空清單元素的清單,是以[[]]*3表示3個指向這個空清單元素的引用,修改任何

一個元素都會改變整個清單:

是以需要用另外一種方式進行建立多元數組,以免淺拷貝:

>>> lists = [[] for i in range(3)]

>>> lists[0].append(3)

>>> lists[1].append(5)

>>> lists[2].append(7)

>>> lists

[[3], [5], [7]]

之前的二維數組建立方式為:

myList = [([0] * 3) for i in range(4)]