Дана матрица. Найти в ней строку с максимальной суммой элементов, а также столбец.
from random import random
matrix = []
for i in range(5):
row = []
for j in range(5):
row.append(int(random()*10))
matrix.append(row)
for row in matrix:
print(row)
maxRow = 0
idRow = 0
i = 0
for row in matrix:
if sum(row) > maxRow:
maxRow = sum(row)
idRow = i
i += 1
print(idRow, '-', maxRow)
maxCol = 0
idCol = 0
for i in range(5):
colSum = 0
for j in range(5):
colSum += matrix[j][i]
if colSum > maxCol:
maxCol = colSum
idCol = i
print(idCol, '-', maxCol)
С комментариями:
# функция random генерирует случайные числа
# от 0 до 1
from random import random
# матрица - двумерный список - список,
# содержащий вложенные списки одинаковой длины
matrix = []
# за одну итерацию внешнего цикла формируется
# один вложенный список - строка матрицы
for i in range(5):
# строка матрицы
row = []
# заполнение строки
for j in range(5):
# добавляется случайное число от 0 до 9 включительно
row.append(int(random()*10))
# строка добавляется в матрицу
matrix.append(row)
# построчный вывод матрицы
for row in matrix:
print(row)
# переменная для хранения максимальной суммы строки
maxRow = 0
# переменная для хранения индекса строки с максимальной суммой
idRow = 0
# индекс
i = 0
# для каждой строки в матрице ...
for row in matrix:
# (Функция sum() возвращает сумму элементов переданного ей списка.)
# Если сумма элементов строки больше значения maxRow,
if sum(row) > maxRow:
# то присвоить переменной maxRow эту сумму,
maxRow = sum(row)
# а в idRow сохранить индекс этой строки.
idRow = i
# увеличить индекс на 1
i += 1
# вывод индекса строки матрицы с максимальной суммой и суммы
print(idRow, '-', maxRow)
# переменная для хранения максимальной суммы столбца
maxCol = 0
# переменная для хранения индекса столбца с максимальной суммой
idCol = 0
# перебор индексов столбцов
for i in range(5):
# сумма текущего столбца
colSum = 0
# перебор индексов строк
for j in range(5):
# извлекается очередной элемент столбца, и добавляется к colSum,
# при этом изменяется индекс строк (j), индекс столбца неизменен (i)
colSum += matrix[j][i]
# Если сумма элементов текущего столбца больше значения maxCol,
if colSum > maxCol:
# то записать значение первой переменной в вторую,
maxCol = colSum
# а индекс столбца сохранить в idCol
idCol = i
# вывод индекса стобца и его суммы
print(idCol, '-', maxCol)
Пример выполнения:
[0, 8, 8, 4, 0]
[9, 6, 7, 1, 6]
[9, 6, 9, 0, 3]
[4, 4, 2, 7, 3]
[8, 8, 9, 4, 5]
4 - 34
2 - 35