建立乙個二維列表有乙個快捷方法就是使用*。
執行結果為:# 建立乙個寬度為3,高度為4的二維列表
mylist=[[0]*3]*4
print(mylist)
mylist[0][1]=1
print(mylist)
這裡我們看見操作二維列表的時候,操作的是mylist[0][1]=1,但是其他的也跟著變成了1。[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0]]
list * n—>nshallow copiesof list concatenated, n個list的淺拷貝的連線。
如:
結果為:list2d=*3
print(list2d)
print(list2d)
為了避免這種情況,可以使用二維列表推導式:[, , ]
[[3], [3], [3]]
mylist=[( [0]*3) for i in range(4)]
執行後為:mylist1=[([0]*3) for i in range(4)]
print(mylist1)
mylist1[0][1]=2
print(mylist1)
這樣後面的沒有跟著變了。[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 2, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
參考
python二維列表
class vector2 向量 def init self,x 0,y 0 self.x x self.y y 將函式轉移到類中,就是靜態方法 staticmethod 向右取值 defright return vector2 0,1 向上取值 staticmethod defup return ...
二維列表的建立,以及深拷貝和淺拷貝的運用
淺拷貝有兩種方式 1 等於符號用於拷貝是淺拷貝,是將原來的列表完全拷貝下來,並且當原來列表發生改變時,拷貝下來的也會發生改變 a 1 2,1,2 b a 這裡將a拷貝給b12 輸出結果為 1 2,1,2 12 1,2,1,2 12 可見淺拷貝的話是隨著原列表的而改變而改變2 copy的拷貝方法,拷貝...
python二維列表排序
假設有乙個學生列表儲存了學號,姓名,年齡資訊 students 3,jack 12 2,rose 13 1,tom 10 5,sam 12 4,joy 8 按學號順序排序 sorted students,key lambda x x 0 1,tom 10 2,rose 13 3,jack 12 4,...