如何在python中添加两个稀疏向量

2024-04-20 12:55:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在python中添加两个稀疏向量。到目前为止,我能够添加和合并向量。但我最终迷失了这给我的‘int’对象是不可原谅的错误。另外,当这些稀疏向量被转换成python字典时,我想知道如何在字典中包含零值。在

def SparseVec(numbers):
    dic={}
    for key,val in enumerate(numbers):
        if val:
            dic[key]=val
    return dic

numbers=[-1,0,9.2,0]
a=SparseVec(numbers)
print(a)

numbers2=[0,1,0,0,0]
b=SparseVec(numbers2)
print(b)

#Adds and merges values with keys in two dictionaries
def merged_dictionaries(a,b):
    merged_dict={}
    for key in a:
        if key in b:
            new_value=a[key]+b[key]
        else:
            new_value=a[key]
        merged_dict[key]=new_value
    for key in b:
        if key not in merged_dict:
            merged_dict[key]=b[key]
    return merged_dict
c=merged_dictionaries(a,b)
for key, val in c.items (): # SparseVec iterator
    print ('c[%d]=%g ' % (val, key))
print(c)

控制台错误:

^{pr2}$

Tags: keyinnewforifvaluevalmerged