Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 23, 2017 03:57:07

Lork
Зарегистрирован: 2017-01-08
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в индексации списка. Помогите разобраться.

Приветствую всех!
Вот такой вот учебный пример: “Выполнить обработку элементов прямоугольной матрицы 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)

При выполнении выдаёт ошибку:
a=a+a
IndexError: list index out of range

Ткните, плиз, пальцем, где тут происходит вылет индексации за пределы списка?

Офлайн

#2 Апрель 23, 2017 05:46:14

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Ошибка в индексации списка. Помогите разобраться.

Lork
где тут происходит вылет индексации за пределы списка?
В условии while. <= надо заменить на <.



Офлайн

#3 Апрель 23, 2017 20:32:17

Lork
Зарегистрирован: 2017-01-08
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в индексации списка. Помогите разобраться.

py.user.next
Понял, спасибо!

Офлайн

#4 Апрель 27, 2017 18:24:26

Alexandr_Zhytenko
Зарегистрирован: 2017-04-27
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в индексации списка. Помогите разобраться.

если я правильно понял

 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])

Офлайн

#5 Апрель 27, 2017 21:04:21

Lork
Зарегистрирован: 2017-01-08
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в индексации списка. Помогите разобраться.

Alexandr_Zhytenko
если я правильно понял
Что-то ничего с исходным массивом не происходит.

Офлайн

#6 Апрель 28, 2017 08:43:23

Alexandr_Zhytenko
Зарегистрирован: 2017-04-27
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в индексации списка. Помогите разобраться.

а так:

 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

Офлайн

#7 Апрель 28, 2017 22:10:07

Lork
Зарегистрирован: 2017-01-08
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в индексации списка. Помогите разобраться.

Alexandr_Zhytenko
а так:
Тоже самое.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version