Вывести на экран элементы, которые являются квадратами какого-либо числа

Дан целочисленный двумерный массив, размерности n х m. Вывести на экран элементы, которые являются квадратами какого-либо числа. У меня получилось написать код для вывода двумерного массива. Но далее нужно каким-то образом осуществить проверку каждого элемента-являются ли они квадратами какого-либо числа. У меня выводится ошибка:TypeError: list indices must be integers or slices, not tuple

from math import sqrt
from random import randint
n, m = 3, 3
a = [[randint(1, 10) for j in range(m)] for i in range(n)]
print (*a,sep='\n')
for k in range (0,m):
 for l in range (0,n):
    if sqrt(a[k,l])==round(a[k,l]):
       print(a[k,l])

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

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

Вам @MBo справедливо отметил, что вы неверно обращаетесь к элементам двухмерного списка.

Кроме того, вы можете обращаться к ним напрямую, а не через индексы:

from math import sqrt, modf
from random import randint
n, m = 3, 3
a = [[randint(1, 10) for j in range(m)] for i in range(n)]

for i in a:
    for j in i:
        if modf(sqrt(j))[0] == 0:
            print(j)

1 1 4 1 4

→ Ссылка
Автор решения: Чмородина
  1. Вы перепутали ширину и высоту массива.
  2. В индексы передаёте два значения через запятую, Питон не поддерживает такое обращение. Нужно использовать [k][l] вместо [k, l].
  3. Вы забыли написать корень в сравнении

Код, который у меня получился:

from math import sqrt 
from random import randint
n, m = 3, 5
a = [[randint(1, 10) for j in range(m)] for i in range(n)]
print(*a, sep='\n')

for k in range(n):
    for l in range(m):
        if sqrt(a[k][l]) == round(sqrt(a[k][l])):
            print(a[k][l])
→ Ссылка