这是《python 编程实践》这本书,第九章,最后一道题,14题。
稀疏向量(sparse vector)就是其元素几乎都为0的那种向量,比如[1,0,0,0,0,0,3,0,0,0] 如果将这些0 都保存到列表中实在是有些浪费存储内存。因此程序员常常会利用字典来保存其中的非零元素。比如说,刚才那个向量会写成{0:1, 6:3}, 这是因为, 该向量位置0处的值为1, 位置6 处的值为3.
a)编写一个叫sparse_add的函数,其参数为两个以字典为形式存储的稀疏向量,要求返回一个表示他们和的新字典。
b)编写一个名为sparse_dot的函数,其作用是计算两个稀疏向量的点积
c)你的上司要求你编写一个名为sparse_len的函数,其作用是返回一个稀疏向量的长度(就好像python中的len函数一样可以返回列表的长度那样。)纳闷,在编写该函数执勤,你还需要问他点什么呢?
好了,为了解决问题。
先上一部分铺垫内容: