Помогите решить университетскую задачу

Дана матрица А размером nxm. Определить k — количество особых элементов массива А, считая его элемент особым, если он больше суммы остальных элементов его столбца.

m = [[2,4,6,8],
     [3,5,2,7],
     [9,4,1,8],
     [1,6,1,3]]
col = [[m[k][i] for k in range(len(m))] for i in range(len(m[0]))]
result = []
def f(a):
    for i in range(len(a)):
        acc = 0
        for k in range(len(a)):
            if k == i:
                continue
            else: acc += a[k]
        if a[i] > acc:
          result.append(a[i])
for i in col:
    f(i)
print(*result)
print('В матрице', len(result),'особых элементов')

Ответы (2 шт):

Автор решения: MBo

Думаю, проще сделать так:

Внешний цикл по номеру столбца.

Внутренний цикл считает сумму столбца colsum (это можно также сделать через sum по соответствующему срезу).

Второй внутренний цикл проходит по столбцу, проверяя, что

if m[i][j]*2 > colsum:
    num_special += 1
→ Ссылка
Автор решения: Алексей Р

Если нет ограничений на использование функций, то можно сделать через zip, sum и max

m = [[2, 4, 6, 8],
     [3, 5, 2, 7],
     [9, 4, 1, 8],
     [1, 6, 1, 3]]
result = []
for col in zip(*m):
    el = max(col)
    if el > sum(col) - el:
        result.append(el)
print(*result)
print('В матрице', len(result), 'особых элементов')
9 6
В матрице 2 особых элементов
→ Ссылка