Однострочный код это, конечно, хорошо, но по читабельности этот код намного отстает от многострочников)
a = [] #сам список, представим, что он у нас есть
for i in range(len(a)):
if a[i] != 0:
print(a[i],"не нулевой")
lst = [[int(_) for _ in input().split()] for p in range(int(input()))]
mx_ind, mn_ind, mn, mx = (0, 0), (0, 0), max(max(lst)), 0
for i in range(len(lst)):
for j in range(len(lst[i])):
if lst[i][j] < mn:
mn = lst[i][j]
mn_ind = (i, j)
if lst[i][j] > mx:
mx = lst[i][j]
mx_ind = (i, j)
print(f'Наибольший: A[{mx_ind[0]}][{mx_ind[1]}] = {mx}')
print(f'Наименьший: A[{mn_ind[0]}][{mn_ind[1]}] = {mn}')
На первой строчке вводишь количество строк в матрице(1 число)
На следующих n строчках вводишь матрицу
print(len([int(i) for i in input('Введите элементы списка через пробел: ').split() if int(i) != 0]))