Форум сайта python.su
Есть задача , нужно посчитать сумму элементов двумерного квадратного (NxN) списка, которые расположены на главной диагонали.
Программа сперва принимает на вход число N (N<=15) - количество строк и столбцов в списке, а затем в N строках записаны элементы списка.
Такую проверку делает платформа:
Sample Input 1:
2
1 2
3 4
То есть наполнение матрицы делается построчно через пробел.
В моём коде ввод происходит построчно. Дополнительно сделал вывод что бы посмотреть вид матрицы.
a=[] n=int(input()) s=0 for i in range(n): b=[] for j in range(n): q=int(input()) b.append(q) a.append(b) for i in a: print(i,end='') print() for i in range(n): for j in range(n): if i==j: s+=a[i][j] print(s)
q=int(input())
q=list(map(int, input().split()))
Офлайн
n=int(input()) s=0 b=[] for j in range(n): q=list(map(int, input().split())) b.append(q) print(b) for i in range(n): for j in range(n): if i==j: s+=b[i][j] print(s)
Офлайн
Можно с комментарием если не трудно, не очень пойму логику
Офлайн
Всё спасибо. Я понял всё, но получается что код только для таблиц в которых 2 строки и неограниченное количество вложенностей в каждую строку? Квадратная таблица не залаживается в коде.
Офлайн
вам нужно проитись по спискам состовляющим вашу матрицу и брать поиндексно элементы из них со смещением в 1
добовляя найденые элементы в список (который и будем обсчитывать) после чего сумировать все элементы получившегося списка sum()упс главная диаганаль не то что выше
это https://ru.wikipedia.org/wiki/%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D0%B4%D0%B8%D0%B0%D0%B3%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C
ок тогда код от xam1816
зы
ввод
In [1]: q = [int(i) for i in input().split(' ')] 1 2 3 4 4 5 In [2]: print(q) [1, 2, 3, 4, 4, 5] In [3]:
Отредактировано AD0DE412 (Окт. 10, 2020 20:26:09)
Офлайн
Отдельно делаешь ввод массива
>>> def input_array(): ... rows = int(input()) ... out = [list(map(int, input().split())) ... for _ in range(rows)] ... return out ... >>> input_array() 2 1 2 3 4 [[1, 2], [3, 4]] >>> >>> input_array() 3 1 2 3 4 5 6 7 8 9 [[1, 2, 3], [4, 5, 6], [7, 8, 9]] >>>
>>> def get_maindiag_sum(mtx): ... return sum( ... mtx[i][j] ... for i in range(len(mtx)) ... for j in range(len(mtx[0])) ... if i == j ... ) ... >>> get_maindiag_sum([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 15 >>> get_maindiag_sum([[1, 2, 3], [4, 5, 6]]) 6 >>>
>>> def input_array(): ... rows = int(input()) ... out = [list(map(int, input().split())) ... for _ in range(rows)] ... return out ... >>> def get_maindiag_sum(mtx): ... return sum( ... mtx[i][j] ... for i in range(len(mtx)) ... for j in range(len(mtx[0])) ... if i == j ... ) ... >>> print('result =', get_maindiag_sum(input_array())) 3 1 2 3 4 5 6 7 8 9 result = 15 >>>
Отредактировано py.user.next (Окт. 11, 2020 01:53:12)
Офлайн