я получаю сообщение об ошибке словарях, несмотря никогда не использовался словаря нигде в моем кодеTypeError: unhashable типа: «DICT» в питоне
Вот мой код:
mm=[]
soln=[]
for i in range(len(momvec)):
string = str(momvec[i])
num = string[2:]
mm.append(Symbol('x'+num))
print num
print mm
soln.append(solve(mom[i]-momvec[i],mm))
print type(MFK[0])
for m in range(0,len(MFK)):
for i in range(0,len(mm)):
print MFK[m]
MFK[m]= Subs(MFK[m],mm[i], soln[i]).doit()
Я Я пытаюсь сделать это, заменив некоторые элементы в списке MFK
с тем, что указано mm
с содержанием soln
итеративно.
отслеживающий:
Traceback (most recent call last):
File "MEA.py", line 313, in <module>
MFK_final(numMoments)
File "MEA.py", line 242, in MFK_final
MFK[m]= Subs(MFK[m],mm[i], soln[i]).doit()
File "/cluster/soft/linux64/epd/lib/python2.7/site-packages/sympy/core/function.py", line 1270, in __new__
pts = sorted(set(point), key=default_sort_key)
TypeError: unhashable type: 'dict'
значения для мамы, momvec и MFK соответственно:
[x2 - y_0**2]
[ym2]
[-2*c_0*y_0*(y_0 - 1) - 2*c_0*(-y_0**2 + yx1*(y_0**2/yx1 + 1)) + 2*c_1*(0.5*c_2 - 0.5*y_0), 4.0*c_0*y_0**2 - 4.0*c_0*y_0 + 2.0*c_1*c_2 - 2.0*c_1*y_0 - (-y_0**2 + yx1*(y_0**2/yx1 + 1))*(8.0*c_0*y_0 - 8.0*c_0 + 2.0*c_1)]
печати Вывод на экран появляется, как будто первый цикл проходит нормально, то он выдает ошибку в название. Кто-нибудь знает, как я могу это решить?
Большое спасибо
Можете ли вы показать полную трассу? И откуда происходит функция 'solve'? –
Я отправлю трассировку, решаясь из модуля Sympy – user124123
@ user1987097: обычно полезно опубликовать [автономный пример] (http://sscce.org), который люди могут просто скопировать и вставить, чтобы попробовать вне. Даже после добавления отсутствующих импортов sympy не определены ни 'mom', ни' momvec', ни 'MFK'. – DSM