Если у меня есть одно целое число и умножьте его на каждое целое число в контейнере (кортеж) и добавьте их вместе - похоже на точечный продукт - я получаю правильный ответ. Когда я конвертировать их в поплавках, я получаю TypeError:Почему я получаю TypeError при попытке сделать dot product?
TypeError: не может умножать последовательность неисполнением междунар типа «поплавком»
sig = {'a': 1.0, 'b': 2.0, 'c': 3.0}
exp = {'a': (1.0,2.0,3.0), 'b': (1.0,2.0,3.0), 'c': (1.0,2.0,3.0)}
man_dot = {'a': 1*1+1*2+1*3, 'b': 2*1+2*2+2*3, 'c': 3*1+3*2+3*3}
weighted_dict = {}
for s in sig:
print("this is s:\n{}".format(s))
for e in exp:
print("this is e:\n{}".format(e))
weighted_dict[s] = sum(sig[s] * exp[e])
# weighted_dict should be equivalent to man_dot
# weighted_dict should be {'a': 6, 'c': 18, 'b': 12}
Этот скрипт должен обрабатывать операции с плавающей точкой, так как может Я изменяю его, чтобы сделать это? Почему это происходит? Есть ли лучше сделать это с помощью некоторой математически ориентированной библиотеки?
Отлично предложение, спасибо. Поэтому проблема заключалась в том, что я не выполнял итерацию через значения кортежа {exp}. Но почему он работает с целыми числами, но не плавает? –