【可恶的mooc】编写函数sparseArraySum,参数是两个这样的字典a和b,得到一个表示向量和的稀疏矩阵。

题目内容:

稀疏矩阵是一系列数字,其中大部分项是0。存储稀疏矩阵的一个高效方式是字典,其中键是非0值的位置,值是序列中该位置对应的值。例如,序列0 0 0 0 0 4 0 0 2 9可以表示为字典{5:4,8:2,9:9}。编写函数sparseArraySum,参数是两个这样的字典a和b,得到一个表示向量和的稀疏矩阵。也就是说,结果中位置i的值是a和b中位置i上值的和。假设稀疏矩阵数字序列长度为10。

输入格式:

两个表示稀疏矩阵的数字序列,数字之间空格分隔,结尾无空格,回车换行输入下一个数字序列

输出格式:

一个表示稀疏矩阵求和结果的数字序列,数字之间空格分隔,结尾无空格

输入样例:

1 0 3 0 0 4 0 0 2 6

6 0 0 0 1 2 0 0 0 3

输出样例:

7 0 3 0 1 6 0 0 2 9

时间限制:500ms内存限制:32000kb


def sparseArraySum(a, b):
    x = [0] * 10
    y = [0] * 10
    for k, v in a.items():
        x[k] = v
    for k, v in b.items():
        y[k] = v
    z = map(lambda p: str(sum(p)), zip(x, y))
    return ' '.join(z)

e1 = list(map(int, input(">>>").split()))
e2 = list(map(int, input(">>>").split()))

d1 = {idx: v for idx,v in enumerate(e1) if v != 0}
d2 = {idx: v for idx,v in enumerate(e2) if v != 0}
print(sparseArraySum(d1, d2))