わかりましたので、ここに私のクラスがあります:
class Vec:
"""
A vector has two fields:
D - the domain (a set)
f - a dictionary mapping (some) domain elements to field elements
elements of D not appearing in f are implicitly mapped to zero
"""
def __init__(self, labels, function):
self.D = labels
self.f = function
2 つのベクトルを受け取る関数を作成するのに助けが必要です。
u = Vec({'a','b','c'}, {'a':0,'c':1,'b':4})
v = Vec({'A','B','C'},{'A':1})
関数は等しい:
equal(u,v)
返す必要があります:
false
これまでのところ、私はこれを試しました:
v = Vec({'x','y','z'},{'y':1,'x':2})
u = Vec({'x','y','z'},{'y':1,'x':0})
def equal(u,v):
"Returns true iff u is equal to v"
assert u.D == v.D
for d in v.f:
for i in u.f:
if v.f[d] == u.f[i]:
return True
else:
return False
print (equal(u,v))
最後の値 'y':1 だけを見ているため、正しくありません。両方を確認するにはどうすればよいですか?