2016-11-09 2 views
0

У меня есть этот вложенный список. Предмет на [0][0] является специальным и называется "h". Я хотел бы "h" обновляться, так что дает иллюзию, что он «движется» через списки из один элемента к другому в то время (например, он может перейти от [0][0] к [0][1], то из [0][1] в [1][1], но а не от [1][1] до [3][5]) Я пытаюсь построить функцию, которая будет выполнять работу для любой возможной пары чисел в моем вложенном списке (6 списков из 6 элементов, поэтому max будет [6] [6]) Однако я не могу найти способ поставить «нейтральный элемент» в свою функцию. Я пытался что-то вроде этого (так оно идет от [0][0] к [0][1] и т.д.):Необходимо обновить место элемента во вложенном списке python

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

так, что везде, где Н, функция обновляет свою позицию соответственно. Но 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

Ого, ну, да, я тупой, я должен был подумать об этом. Я всегда стараюсь делать то, о чем я не знаю, и не думаю про самый простой материал ... Во всяком случае, большое спасибо за вашу помощь !! Хорошего дня ! –