Python

Срочная помощь по Python

Помогите написать код к 4 задачкам:
1) Имеется двумерный массив целых чисел размерности 6*5. Найти
номер строки, для которой среднеарифметическое значение ее
элементов максимально.
2) Заполнить двумерный массив целыми числами от 1 до 100 по
спирали.
3) В двумерном массиве целых чисел заменить все элементы, меньшие
суммы элементов первой строки на эту сумму.
4) Отсортировать строки массива целых чисел по убыванию.
1)
 import random

def fmt(i): return "%5d" % i
def fmtRow(r): return " ".join(map(fmt, r))

a = [[random.randint(-10, 10) for _ in range(5)] for _ in range(6)]
print(*map(fmtRow, a), sep = '\n')

sums = list(map(sum, a))
imax = max(range(len(sums)), key = sums.__getitem__)
print("Номер строки:", imax + 1)

 Пример:
9 6 -10 -5 2
10 5 5 -4 8
7 2 -4 -1 -8
-1 -4 9 6 3
-6 3 10 -6 10
10 8 6 10 4
Номер строки: 6
Ищем, разумеется, максимум по сумме, т.к. нет никакого смысла делить все суммы строк на одно и то же число.

2)
 def fmt(i): return "%5d" % i
def fmtRow(r): return " ".join(map(fmt, r))

def spiralMatrix(n):
m = [[0] * n for i in range(n)]
dx, dy = [0, 1, 0, -1], [1, 0, -1, 0]
x, y, c = 0, -1, 1
for i in range(n + n - 1):
for j in range((n + n - i) // 2):
x += dx[i % 4]
y += dy[i % 4]
m[x][y] = c
c += 1
return m

N = int(input("Размерность квадратной матрицы: "))

print(*map(fmtRow, spiralMatrix(N)), sep = '\n')
3)
 import random

def fmt(i): return "%5d" % i
def fmtRow(r): return " ".join(map(fmt, r))

a = [[random.randint(-10, 10) for _ in range(5)] for _ in range(6)]
print(*map(fmtRow, a), sep = '\n')

s = sum(a[0])
b = [[max(e, s) for e in r] for r in a]
print("После замены:", *map(fmtRow, b), sep = '\n')

 Пример:
5 -7 -8 10 4
0 -10 -2 6 2
-5 -8 -5 7 2
-6 -2 10 0 6
7 -6 -6 9 9
-6 -4 -4 -3 -4
После замены:
5 4 4 10 4
4 4 4 6 4
4 4 4 7 4
4 4 10 4 6
7 4 4 9 9
4 4 4 4 4
4)
 import random

def fmt(i): return "%5d" % i
def fmtRow(r): return " ".join(map(fmt, r))
def revSort(r): return sorted(r, reverse = True)

a = [[random.randint(-10, 10) for _ in range(5)] for _ in range(6)]
print(*map(fmtRow, a), sep = '\n')

s = map(revSort, a)
print("После сортировки:", *map(fmtRow, s), sep = '\n')

 Пример:
5 1 -1 -2 0
-10 -7 -5 -4 -10
4 5 5 10 -8
-8 7 6 2 -3
9 -9 -5 -1 -10
-6 7 1 4 6
После сортировки:
5 1 0 -1 -2
-4 -5 -7 -10 -10
10 5 5 4 -8
7 6 2 -3 -8
9 -1 -5 -9 -10
7 6 4 1 -6
Рамиль Валиев
Рамиль Валиев
54 053
Лучший ответ
Рамиль Валиев Пример для (2):
 Размерность квадратной матрицы: 7
1 2 3 4 5 6 7
24 25 26 27 28 29 8
23 40 41 42 43 30 9
22 39 48 49 44 31 10
21 38 47 46 45 32 11
20 37 36 35 34 33 12
19 18 17 16 15 14 13