list用不了numpy的切片,比如如果a是numpy, a[:][2]取的是所有行的第2列的元素,如果是list of list,
a[:][2]取的是第2行的所有元素,因为在list里[:]取当前列表本身,同样的,a[2][:]也是取的第二行所有元素,a[2][:]等效于先取a的第二行所有元素,然后在此基础上取本身,所以还是a的第二行所有元素。
list和numpy都可以用zip。
from typing import (
List,
)
class Solution:
"""
@param a: a sparse matrix
@param b: a sparse matrix
@return: the result of A * B
"""
def multiply(self, a: List[List[int]], b: List[List[int]]) -> List[List[int]]:
# write your code here
a_r, a_c = len(a), len(a[0])
b_r, b_c = len(b), len(b[0])
c = [[0]*b_c for i in range(a_r)]# a_r, b_c
for i in range(a_r):
for j in range(b_c):
cur_b = [e[j] for e in b]
for sub_a,sub_b in zip(a[i], cur_b):
c[i][j] += sub_a*sub_b
return c