2013-11-15 50 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]]