Форум сайта python.su
Приветствую всех!
Вот такой вот учебный пример: “Выполнить обработку элементов прямоугольной матрицы A, имеющей N
строк и M столбцов. Просуммировать элементы каждой строки матрицы с соответствующими элементами L-й строки.”
И вот такой вот код:
a=[[39, 32, 4, 4, 36, -36, -6], [-7, 34, -7, -25, -47, 35, -46], [11, 5, 15, -29, -31, -20, 6], [-13, -19, 5, -14, 15, -2, 40], [-8, -49, -31, -10, -30, -7, 2]] L=int(input('L=')) # Ввод номера L-й строки ########################################### i=0 while i<=len(a): if i==(L-1): i=i+1 pass j=0 while j<=(len(a[L-1])-1): a[i][j]=a[i][j]+a[L-1][j] j=j+1 i=i+1 print('a=',a)
Офлайн
LorkВ условии while. <= надо заменить на <.
где тут происходит вылет индексации за пределы списка?
Офлайн
py.user.nextПонял, спасибо!
Офлайн
если я правильно понял
L = int(input('L = ')) a=[[39, 32, 4, 4, 36, -36, -6], [-7, 34, -7, -25, -47, 35, -46], [11, 5, 15, -29, -31, -20, 6], [-13, -19, 5, -14, 15, -2, 40], [-8, -49, -31, -10, -30, -7, 2]] def sum_row(a, L): return sum(a[L])
Офлайн
Alexandr_ZhytenkoЧто-то ничего с исходным массивом не происходит.
если я правильно понял
Офлайн
а так:
L = int(input('L = ')) a=[[39, 32, 4, 4, 36, -36, -6], [-7, 34, -7, -25, -47, 35, -46], [11, 5, 15, -29, -31, -20, 6], [-13, -19, 5, -14, 15, -2, 40], [-8, -49, -31, -10, -30, -7, 2]] def sum_row(a, L): for i in range(len(a)): for j in range(len(a[i])): a[i][j] += a[L][j] return a
Офлайн
Alexandr_ZhytenkoТоже самое.
а так:
Офлайн