'''
编写函数,计算两个矩阵的乘积。
'''
# 该函数用于把一维列表转换为二维列表
def strToMatrxi(ju):
############beigin###################################
m1=list(ju.split(";"))
matrix=[]
for item in m1:
tmp=[int(x) for x in item.split(',')]
matrix.append(tmp)
return matrix
############end###################################
# 定义矩阵相乘函数
def matrixMultiply(matrix1):
############beigin###################################
def compute(list1,list2):
return sum(list(map(lambda x: x[0]*x[1],zip(list1,list2))))
def multiply(matrix2):
transMatrix =list(map(list,zip(*matrix2)))
result=[]
for item1 in matrix1:
row=[]
for item2 in transMatrix:
row.append(compute(item1,item2))
result.append(row)
return result
return multiply
############end###################################
def main():
'''
矩阵的输入格式为行之间用分号分隔,列之间用逗号分隔
三行三列矩阵输入格式为:1,2,3;3,4,5;5,6,7
'''
str1 =input("")
str2 =input("")
matrix1 =strToMatrxi(str1)
matrix2 =strToMatrxi(str2)
print(matrix1)
print(matrix2)
print("矩阵相乘后的运算结果为:")
matrix3 =list(matrixMultiply(matrix1)(matrix2))
print(matrix3)
main()
输入:
1,2,3;3,4,5;5,6,7
2,5,8;2,6,7;3,3,4
输出:
[[1, 2, 3], [3, 4, 5], [5, 6, 7]] [[2, 5, 8], [2, 6, 7], [3, 3, 4]] 矩阵相乘后的运算结果为: [[15, 26, 34], [29, 54, 72], [43, 82, 110]]