Python 添加向量类定义
我试图用python实现一个向量类,但似乎无法理解这个加法函数的逻辑。下面的代码包括示例 注意:Vec()是一个包含两个成员变量的类。v、 D设置向量的域,v.f是将域映射到相应值的字典。还请注意,v.D中映射到0的元素被假定为在v.f中Python 添加向量类定义,python,Python,我试图用python实现一个向量类,但似乎无法理解这个加法函数的逻辑。下面的代码包括示例 注意:Vec()是一个包含两个成员变量的类。v、 D设置向量的域,v.f是将域映射到相应值的字典。还请注意,v.D中映射到0的元素被假定为在v.f中 def add(u,v): """ Returns the sum of the two vectors. Make sure to add together values for all keys from u.f and v.f e
def add(u,v):
"""
Returns the sum of the two vectors.
Make sure to add together values for all keys from u.f and v.f even if
some keys in u.f do not exist in v.f (or vice versa)
>>> a = Vec({'a','e','i','o','u'}, {'a':0,'e':1,'i':2})
>>> b = Vec({'a','e','i','o','u'}, {'o':4,'u':7})
>>> c = Vec({'a','e','i','o','u'}, {'a':0,'e':1,'i':2,'o':4,'u':7})
>>> a + b == c
True
>>> a == Vec({'a','e','i','o','u'}, {'a':0,'e':1,'i':2})
True
>>> b == Vec({'a','e','i','o','u'}, {'o':4,'u':7})
True
>>> d = Vec({'x','y','z'}, {'x':2,'y':1})
>>> e = Vec({'x','y','z'}, {'z':4,'y':-1})
>>> f = Vec({'x','y','z'}, {'x':2,'y':0,'z':4})
>>> d + e == f
True
>>> b + Vec({'a','e','i','o','u'}, {}) == b
True
"""
assert u.D == v.D
return Vec({v.D}, {x: v.f.get(x, 0) + u.f.get(x, 0) for x in v.D})
我的猜测是v.D是一本字典,所以这个
{v.D}
相当于
{{...}}
这不是期望的。您得到了什么结果?当我尝试提交时,我得到了一个“不可损坏类型:set”;哦,上帝,谢谢你,克里斯蒂安!真不敢相信我居然没看到。如此愚蠢的错误…+1像
v.D
这样的书是一个集合,它是可变的。