Как я могу вычислить среднее значение для каждого столбца и строки и распечатать по массиву 10 * 3

#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()