2013-11-15 83 views
0

我有一個兩維列表:Python中,二維列表和座標

def list(): 
    list1 =[1,2,3,4,5] 
    list2 =[0,0,0,0,0] 
    list3 =[6,7,8,9,10] 

    list=[list1,list2,list3] 

    for i in list: 
     print(i) 

list() 

6將具有座標(0,2),右?? 我想將6移至(0,1),當我這樣做時,我也希望(0,2)變爲0.

我該如何做?我不知道..我是這個初學者。

+2

請勿將'list()'用作函數或局部變量名稱。你正在屏蔽內置的。 –

+0

您有嵌套列表,而不是二維列表。 – chepner

回答

1

只需直接分配到這兩個索引對從外列表索引到內(最後一個列表是2,中間列表是1),所以最後一個列表的第一個元素是在[2][0]

outerlist[1][0], outerlist[2][0] = outerlist[2][0], 0 

這將兩個值(一個取自outerlist[0][2],另一個取自整數字面值0)分配給嵌套列表中的兩個位置。

如果你想交換這兩個位置(取0outerlist[0][1]),然後用相同的語法這樣做:

outerlist[1][0], outerlist[2][0] = outerlist[2][0], outerlist[1][0] 

,因爲右邊表達式分配兩個前評估值到左側目標:

>>> outerlist = [[1, 2, 3, 4, 5], [0, 0, 0, 0, 0], [6, 7, 8, 9, 10]] 
>>> outerlist 
[[1, 2, 3, 4, 5], [0, 0, 0, 0, 0], [6, 7, 8, 9, 10]] 
>>> outerlist[1][0], outerlist[2][0] = outerlist[2][0], outerlist[1][0] 
>>> outerlist 
[[1, 2, 3, 4, 5], [6, 0, 0, 0, 0], [0, 7, 8, 9, 10]]