Найти - Пользователи
Полная версия: Элементы выше главной диагонали – это элементы A[i][j], для которых i<j, а для элементов ниже главной диагонали i>j
Начало » Python для новичков » Элементы выше главной диагонали – это элементы A[i][j], для которых i<j, а для элементов ниже главной диагонали i>j
1
Imarden
Добрый день!
Необходимо элементам, находящимся на главной диагонали, проходящей из левого верхнего угла в правый нижний (то есть тем элементам A, для которых ij) присвоить значение 1, элементам, находящимся выше главной диагонали – значение 0, элементам, находящимся ниже главной диагонали – значение 2.

A = []
for i in range(3):
    for j in range(3):
        if i < j:
            A[i][j] = 0
        elif i > j:
            A[i][j] = 2
        else:
            A[i][j] = 1
Но выходит за рамки массива.
  File "test.py", line 9, in <module>
    A[i][j] = 1
IndexError: list index out of range
Как и почему выходит за рамки массива понять не могу.
FishHook
Imarden
Как и почему выходит за рамки массива понять не могу.
A = []
Матрица вообще пустая, в ней нет элементов. Что вы рассчитываете получить обращаясь к несуществующим ячейкам?
Imarden
FishHook
for i in range(3):
    for j in range(3):
        if i < j:
            A[i][j] = 0
        elif i > j:
            A[i][j] = 2
        else:
            A[i][j] = 1
А этот код что делает ?
giveback
Этот код присваивает значения в уже существующие ячейки матрицы.
Нужно вначале создать пустую матрицу, а затем заполнить её.
Например, вот так (тут матрица 3 на 3):

ncols = 3
nrows = 3
A = [[0] * ncols for i in range(nrows)]
for i in range(ncols):
    for j in range(nrows):
        if i < j:
            A[i][j] = 0
        elif i > j:
            A[i][j] = 2
        else:
            A[i][j] = 1

Результат:

for row in A:
    print row
	
[1, 0, 0]
[2, 1, 0]
[2, 2, 1]
Imarden
giveback
Спасибо!
То что внутри списка нужно создать еще пустой список я упустил.
Спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB