ошибка выхода индекса за пределы диапазона при циклическом просмотре 2d-списка

#python #loops #tkinter

Вопрос:

Я пытаюсь выполнить цикл по 2d — списку, но я получаю индекс списка вне диапазона ошибок. если вы знаете, почему, пожалуйста, ответьте или предоставьте любые ссылки на источники, о которых вам известно. Спасибо. вот посвящение

 self.Cost_matrix = []
    for i in range(int(self.e.get())):
        
        # self.l10 = Label(self.f4, text = f'Zone {i 1}', bg = '#d9d9d9')
        # self.l10.grid(row=i 2, column=0)

        # self.l11 = Label(self.f4, text = f'Zone {i 1}', bg = '#d9d9d9')
        # self.l11.grid(row=1, column=i 1)
        
        for j in range(int(self.e.get())):
            self.Cost_row = []
            self.e5 = Entry(self.f4, width = 12)
            self.e5.grid(row = i 2, column = j 1)
            self.Cost_row.append(self.e5)
        self.Cost_matrix.append(self.Cost_row)    
 

вот как я пытался получить к нему доступ

 for i in range(len(self.Cost_matrix)):
        for j in range(len(self.Cost_matrix)):
            self.impedence_factor = float(self.Cost_matrix[i][j].get())
            print(f'elements of Cost matrix is {self.impedence_factor}')
 

при запуске этого блока кода я получаю сообщение об ошибке, в котором говорится, что индекс self.Cost_matrix[i][j] находится вне диапазона.

пожалуйста, прокомментируйте, если вам что-нибудь известно об этом. Спасибо.

Комментарии:

1. вероятно, потому, что вы добавляете 1 к длине двух списков в циклах for

2. Вы добавляете 1 в список длины. Таким образом, последний элемент, сгенерированный в диапазоне, отсутствует в индексе списка

3. Тебе нужно переехать self.Cost_row = [] раньше for j in range(...) .

4. спасибо, это работает.