题目内容:
稀疏矩阵是一系列数字,其中大部分项是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))