2016-11-09 59 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

哇,好吧,是啊,我很愚蠢,我應該考慮一下。我總是嘗試做我不知道的東西,不要去想最簡單的東西......無論如何,非常感謝您的幫助!祝你今天愉快 ! –