#python
#python
Вопрос:
Я хочу, чтобы он печатал средние значения в виде другого столбца и строки. я также продолжаю получать эту ошибку при попытке ее запуска
Файл «desktop/exercise10.py «, строка 25, в a[i][n 1] = total / m IndexError Ошибка: индекс назначения списка выходит за пределы диапазона
import stdio
a = [[99.0,85.0,98.0],
[98.0,57.0,79.0],
[92.0,77.0,74.0],
[94.0,62.0,81.0],
[99.0,94.0,92.0],
[80.0,76.5,67.0],
[76.0,58.5,90.5],
[92.0,66.0,91.0],
[97.0,70.5,66.5],
[89.0,89.5,81.0]]
m = 10
n = 3
for i in range(m):
for j in range(n):
stdio.write(a[i][j])
stdio.write(' ')
stdio.writeln()
for i in range(m):
total = 0.0
for j in range(n):
total = a[i][j]
a[i][n] = total / m
for j in range(n):
total = 0.0
for i in range(m):
total = a[i][j]
a[m 1][j] = total / n
Комментарии:
1. » я также продолжаю получать эту ошибку, когда пытаюсь ее запустить» Ну, как вы думаете, не должно быть ошибки? Попытайтесь убедить меня в том, почему не должно быть ошибки. Начните с просмотра строки кода, упомянутой в сообщении об ошибке, и объяснения того, что она должна делать.
2. Разрешено ли вам использовать NumPy?
3. нет, я не могу использовать numPy
4. Есть ли конкретная проблема? Вы проводили какую-либо отладку? Я бы рекомендовал прочитать ericlippert.com/2014/03/05/how-to-debug-small-programs .
Ответ №1:
Вы можете использовать append для вставки элемента в конец списка. Проверьте приведенный ниже код:
a = [[99.0,85.0,98.0],
[98.0,57.0,79.0],
[92.0,77.0,74.0],
[94.0,62.0,81.0],
[99.0,94.0,92.0],
[80.0,76.5,67.0],
[76.0,58.5,90.5],
[92.0,66.0,91.0],
[97.0,70.5,66.5],
[89.0,89.5,81.0]]
for i in range(len(a)):
a[i].append(sum(a[i])/len(a[i]))
list_avg_column = []
for j in range(len(a[0])):
avg_column = 0
for i in range(len(a)):
avg_column = a[i][j]
list_avg_column.append(avg_column/len(a))
a.append(list_avg_column)
# print information
import stdio
for i in range(len(a)):
for j in range(len(a[0])):
stdio.write(a[i][j])
stdio.write(' ')
stdio.writeln()