簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM