[英]Need to update place of item in nested list python
我有這個嵌套列表。 [0][0]
處的項目很特殊,稱為"h"
。 我希望對"h"
進行更新,以使它產生一種錯覺,即它一次在整個列表中從一個項目“移動”到另一個項目(例如,它可以從[0][0]
移到[0][1]
,然后從[0][1]
到[1][1]
,但不是從[1][1]
到[3][5]
)我正在嘗試構建一個函數來完成嵌套列表中的任何可能的數字對(6個列表,共6個項目,因此最大值為[6] [6])。但是,我找不到在函數中放置“中性項目”的方法。 我已經嘗試過類似的事情(因此它從[0][0]
變為[0][1]
等):
for sublist in list:
for item in sublist:
h=list[n][n+1]
因此無論h在哪里,該函數都會相應地更新其位置。 但是Python告訴我n不能使用,因為它是一個字符串。
我可能會做什么? 函數是正確的工具嗎? 我應該使用其他東西嗎?
這很簡單。 您必須編寫一個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']]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.