Я пытаюсь получить индексы ячеек в строках.Это работает нормально, пока я не сталкиваюсь с пустыми строками.Ниже приводится MWE.
Следующие работы - нет пустых строк:
table = [['A', 'B', 'C'], ['1', '2', '3'], ['4', '5', '6']]
for row in table[1:]:
row_ind = table.index(row)
for cell in row:
col_ind = row.index(cell)
print('row_ind: ' + str(row_ind) + ' | col_ind: ' + str(col_ind))
Как и ожидалось, вывод:
row_ind: 1 | label_ind: 0
row_ind: 1 | label_ind: 1
row_ind: 1 | label_ind: 2
row_ind: 2 | label_ind: 0
row_ind: 2 | label_ind: 1
row_ind: 2 | label_ind: 2
Однако, снекоторые строки пусты, как в следующем примере:
table = [['A', 'B', 'C'], ['1', '', ''], ['', '', '6']]
for row in table[1:]:
row_ind = table.index(row)
for cell in row:
col_ind = row.index(cell)
print('row_ind: ' + str(row_ind) + ' | col_ind: ' + str(col_ind))
Индексы в выходных данных отключены: (Проблема также возникает, когда вместо пустых строк у меня нули):
row_ind: 1 | col_ind: 0
row_ind: 1 | col_ind: 1
row_ind: 1 | col_ind: 1
row_ind: 2 | col_ind: 0
row_ind: 2 | col_ind: 0
row_ind: 2 | col_ind: 2
Если я заменю все пустые строки на 'na', например:
table = [['A', 'B', 'C'], ['1', '', ''], ['', '', '6']]
table_new = []
for row in table:
row_new = []
for cell in row:
if cell == '' or cell == '0':
cell = 'na'
row_new.append(cell)
else:
row_new.append(cell)
table_new.append(row_new)
for row in table_new[1:]:
row_ind = table_new.index(row)
for cell in row:
col_ind = row.index(cell)
print('row_ind: ' + str(row_ind) + ' | col_ind: ' + str(col_ind))
Индексы в выводе все еще выключены:
row_ind: 1 | col_ind: 0
row_ind: 1 | col_ind: 1
row_ind: 1 | col_ind: 1
row_ind: 2 | col_ind: 0
row_ind: 2 | col_ind: 0
row_ind: 2 | col_ind: 2
Исправление было бы фантастическимтак что я могу использовать индексы, но я буду в порядке с альтернативой.Любая помощь и / или объяснение приветствуются.Заранее спасибо.