def add_s_and_d(vse,vde):
key_vse = list(vse.keys())
Ve = [] #以密集向量的形式定义空的结果向量
if max(key_vse)<=len(vde):
for m in range(0,len(vde)): #依向量加法定义可知,密集向量的长度一定大于等于稀疏向量的键数
if m in key_vse:
Ve.append(vse[m] + vde[m]) #空列表不能循秩访问!!!加元素只能用append!!
else: #若稀疏向量的键列表中无当前遍历到的秩,说明稀疏向量该秩的元素为0
Ve.append(0 + vde[m])
return Ve
else:
print("您输入的两个向量维度不符合向量加法定义,请重新输入。")
#按题意定义稀疏向量,调用函数检验结果
vs_e = {0:3,1:5,3:4,5:7}
vd_e = [1,2,3,4,5,6,7]
print("The answer to (e) is:",add_s_and_d(vs_e,vd_e))
python空列表添加元素,不可循秩访问赋值(因为空列表”没有秩”)
于 2023-03-24 15:14:41 首次发布