#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. спасибо, это работает.