定义一个函数计算2*2矩阵乘法

想设计一个简单的输出计算两个2*2矩阵的乘法结果。

def f(a,b):
c = [[0,0],[0,0]] #创建保存乘法结果的列表
for i in range(2): #遍历结果列表,计算各个元素值
for j in range(2):
c[i][j] = a[i][0]b[0][j]+a[i][1][1][j]
return c
x = input('请输入矩阵A:') #输入数据为字符串
a = x.split(' ')
a[0] = list(eval(a[0])) #将字符串表示的第1行数据转化为列表
a[1] = list(eval(a[1])) #将字符串表示的第2行数据转化为列表
x = input('请输入矩阵B:')
b = x.split('')
b[0] = list(eval(b[0]))
b[1] = list(eval(b[1]))
x = f(a,b)
print('矩阵A:') #输出矩阵
for r in a:
for c in r:
print('%-4s'%c,end='')
print()
print('矩阵B:')
for r in b:
for c in r:
print('%-4s'%c,end='')
print()
print('A*B=')
for r in x:
for c in r:
print('%-4s'%c,end='')
print()

============================ RESTART: E:\桌面\59-7.py ============================
请输入矩阵A:1,2,3,4
Traceback (most recent call last):
File "E:\桌面\59-7.py", line 10, in
a[1] = list(eval(a[1])) #将字符串表示的第2行数据转化为列表
IndexError: list index out of range

我认为是代码打错了,但是检查了几遍没发现(教材上的答案示例代码)

示例运行结果如下
请输入矩阵A:1,2,3,4
请输入矩阵B:5,6,7,8
矩阵A:
1 2
3 4
矩阵B:
5 6
7 8
A*B=
19 22
43 50

定义一个通用的矩阵乘法公式,不一定非要方阵才能相乘, 它们相乘的行列数关系是 Amn * Bnp = Cmp

def matrixMultiple(A, B):
    res = [[0]*len(B[0]) for _ in range(len(A))]
    for i in range(len(A)):
        for j in range(len(B[0])):
            for k in range(len(A[0])):
                res[i][j] += A[i][k] * B[k][j]
    return res

matrixA = [[1,2],[3,4]]
matrixB = [[5,6],[7,8]]
print(matrixMultiple(matrixA, matrixB))

matrixA = [[1,2,3],[3,2,2],[2,1,2]]
matrixB = [[2,2],[3,1],[2,1]]
print(matrixMultiple(matrixA, matrixB))

matrixA = [[1,2,3],[4,5,6]]
matrixB = [[7,8,9,0],[-1,-2,-3,-4],[5,6,7,8]]
print(matrixMultiple(matrixA, matrixB))

#输出:
[[19, 22], [43, 50]]
[[14, 7], [16, 10], [11, 7]]
[[20, 22, 24, 16], [53, 58, 63, 28]]