2016-11-09 57 views
0

我有这个嵌套列表。 [0][0]的项目是特殊的,并且被称为"h"。我想"h"进行更新,因此给人的错觉,以为它“动作”跨列出了从一个项目到另一个在一个时间(比如,它可以摆脱[0][0][0][1],然后从[0][1][1][1],但不是从[1][1][3][5]) 我试图建立一个函数,可以为我的嵌套列表中的任何可能的数字对(6个列表中的6个项目,所以最大值将是[6] [6]) 但是,我找不到一种方法在我的功能中添加“中性项目”。我已经试过这样的事情(如此这般从[0][0][0][1]等):需要更新嵌套列表中的项目的位置python

for sublist in list: 
     for item in sublist: 
      h=list[n][n+1] 

,这样无论h是,该功能相应地更新其位置。但是Python告诉我n不能使用,因为它是一个字符串。

我可能做什么?功能是正确的工具吗?我应该使用别的东西吗?

回答

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']] 
+0

哇,好吧,是啊,我很愚蠢,我应该考虑一下。我总是尝试做我不知道的东西,不要去想最简单的东西......无论如何,非常感谢您的帮助!祝你今天愉快 ! –