А пришел set. Откуда - по коду не видно. Но, даже, если ожидается typing.Mapping, то использование индексов - это не Pythonic way. Там вообще в результате одна строчка кода должна остаться вида; counter = sum([a * b for a, b in zip(a, b])
Vladius97, По поводу первого кода из вашего комментария:
1) Вы не там (пере)инициализируете переменную S (надо перед самым внутренним циклом).
2) Вы печатаете не переменную S, а элемент матрицы А (который не изменялся).
3) Вы выводите результат на печать в теле самого внутреннего цикла, а надо после его окончания.
И, да, после этих исправлений будут напечатаны все элементы квадрата матрицы A.
А вот если бы вы после (вместо) печати дополнительно переприсваивали элемент матрицы А[z][j], то все бы испортили. Умножение матриц, а матрица в квадрате - это умножение матрицы на себя - это не атомарная операция. Все элементы исходной матрицы используются не один раз. Не надо их портить.