Ошибка в выходе за пределы списка
Есть двумерный масив, который формируется с помощью считывания данных из текстового файла. Необходимо пройтись по нему проверяя первые элементы каждой строчки. Реализовано это следующим способом:
for i in range(len(spic)):
if spic[i][0] == '0':
print(spic[i])
#тут функция
elif spic[i][0] == '1':
print(spic[i])
#тут функция
elif spic[i][0] == '2':
print(spic[i])
#тут функция
elif spic[i][0] == '3':
print(spic[i])
#тут функция
elif spic[i][0] == '4':
print(spic[i])
тут функция
elif spic[i][0] == '5':
print(spic[i])
#тут функция
elif spic[i][0] == '6':
print(spic[i])
#тут функция
elif spic[i][0] == '7':
print(spic[i])
#тут функция
elif spic[i][0] == '8':
print(spic[i])
#тут функция
elif spic[i][0] == '9':
print(spic[i])
#тут функция
elif spic[i][0] == '10':
print(spic[i])
#тут функция
Но на первом элементе высвечивается ошибка выхода за пределы массива:
File "D:\video\test_program.py", line 140, in <module>
if spic[i][0] == '0':
IndexError: list index out of range
Программа для формирования двухмерного массива:
file1 = open("test.txt", "r")
spic = []
while True:
# считываем строку
line = file1.readline()
time_line = line.split()
if len(time_line) != 0:
spic.append(time_line)
# прерываем цикл, если строка пустая
if not line:
break
# выводим строку
#print(line.strip())
# закрываем файл
file1.close
В чем может быть проблема? Фай не пустой.
Ответы (1 шт):
Автор решения: ClickName
→ Ссылка
for i in spic:
if i:
print(i[0])
... #тут ваши переборы и функции
else:
print('Пустая строка!')
Так точно на ошибку не наткнетесь. К тому же if len(time_line) != 0: лучше заменить на if len(time_line):, а функции занести в словарь ключами которого будут цифры (чтобы не городить миллион if)