Ok так вот мой класс:Найти если 2 векторы равны питона
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
Мне нужна помощь в создании функции, которая принимает в двух векторов, позволяет сказать:
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))
Я получаю истинное что неправильно, потому что это только глядя на последнее значение: «у»: 1, как я могу проверить для обоих?
SO не является кодовым письмом. Что вы пробовали? –
My bad @Steve P. Я обязательно поменяю свой этикет на данный момент. –
ok, так что я пробовал это: 'v = Vec ({'x', 'y', 'z'}, {'y': 1, 'x': 2})' 'u = Vec ({'x', 'y', 'z'}, {'y': 1, 'x': 0}) ' ' def equal (u, v): "Возвращает true, если u равно v " утверждает UD == VD для г в ВФЕ: для г в уф: если VF [d] == уф [я]: возвращающих еще: возвращает False печати (равные (и, v)) ' Я получаю' истинный', который неверен, потому что он смотрит только на последнее значение: '' y ': 1', как я могу проверить оба? –