在python中交换列表列表中的项目?

在python中交换列表列表中的项目?,python,list,python-3.x,swap,Python,List,Python 3.x,Swap,鉴于上面的列表难题,我需要能够将X的位置交换到左、右、上或下。问题是,如何将其与列表拼图中其他列表旁边或列表中的项目交换 puzzle = [[' 1', ' 2', ' 3', ' 4'], [' 5', ' 6', ' 7', ' 8'], [' 9', '10', '11', '12'], ['13', '14', '15', ' X']] 但是X的位置一直在变化。X旁边的项目位置也在不断变化。我如何跟踪更改,并且每当我调用我的

鉴于上面的列表难题,我需要能够将X的位置交换到左、右、上或下。问题是,如何将其与列表拼图中其他列表旁边或列表中的项目交换

puzzle = [[' 1', ' 2', ' 3', ' 4'],
          [' 5', ' 6', ' 7', ' 8'],
          [' 9', '10', '11', '12'],
          ['13', '14', '15', ' X']]

但是X的位置一直在变化。X旁边的项目位置也在不断变化。我如何跟踪更改,并且每当我调用我的方法时,它都会变为左侧?您知道您必须交换的项目的位置吗?或者至少是项目的值?好吧,假设我知道X的初始位置是[3][3],我想用15交换它,在[3][2]的哪个位置。当我调用swap方法时,它使用刚才提到的通用swap正确地交换位置。但在那之后,我想用14来交换X。但是X的位置不同。当我调用该方法时,如何将X与14交换,然后再与13交换?跟踪X的当前位置。如果你知道它的任何时候,你可以跟踪它一直。因此,如果将[3][3]处的X与[3][2]处的15进行交换,则可以存储3,2。如何和在哪里?取决于你的计划。可以是一个全局变量,或者调用这些交换的包装函数可以跟踪它。
#generic swap puzzle[a][b] with puzzle[c][d]
puzzle[a][b], puzzle[c][d] = puzzle[c][d], puzzle[a][b]