需要在嵌套列表python中更新项目的位置

时间:2016-11-09 20:30:04

标签: python list nested-lists

我有这个嵌套列表。 [0][0]上的项目很特殊,名为"h"。我希望"h"能够更新,因此它会产生幻觉,它会移动"从一个项目列表到另一个列表(例如,它可以从[0][0]移至[0][1],然后从[0][1]移至{{1} },但不是从[1][1][1][1]) 我正在尝试构建一个函数来完成嵌套列表中任何可能的数字对的工作(6个项目的6个列表,因此最大值为[6] [6]) 但是,我无法找到一种方法来放置一个"中性项目"在我的功能。我尝试过这样的事情(所以它从[3][5]转到[0][0]等):

[0][1]

因此无论何处h,该函数都会相应地更新其位置。但Python告诉我 n 不能使用,因为它是一个字符串。

我可以做些什么?功能是正确的工具吗?我应该用别的吗?

1 个答案:

答案 0 :(得分:0)

很简单。您必须撰写for loop并将项目的位置从[i][i]移至[i][i+1],然后将[i][i+1]移至[i+1][i+1]。让我们看一下例子。最初我们的字符串是这样的:

my_list = [['Here', '', ''], ['', '', ''], ['', '', '']]

这是我们的循环:

for i in range(len(my_list) -1 ):
    my_list[i][i+1], my_list[i][i] = my_list[i][i], my_list[i][i+1]
    print 'New position --->', my_list
    my_list[i][i+1], my_list[i+1][i+1] = my_list[i+1][i+1], my_list[i][i+1]
    print 'New position --->', my_list

将在一行中打印列表。为了清楚起见,我将说明第3x3行矩阵。

#Initially, position = 0, 0
[['Here', '', ''], 
 ['', '', ''], 
 ['', '', '']]

# for i = 0, first print, position = 0, 1
[['', 'Here', ''], 
 ['', '', ''], 
 ['', '', '']]

# for i=0, second print, position = 1, 1
[['', '', ''], 
 ['', 'Here', ''], 
 ['', '', '']]

# for i=1, first print, position = 1, 2
[['', '', ''], 
 ['', '', 'Here'], 
 ['', '', '']]

# for i=1, second print, position = 2, 2
[['', '', ''], 
 ['', '', ''],
 ['', '', 'Here']]