我收到約字典的錯誤消息,儘管從來沒有使用過一本字典在我的代碼類型錯誤:unhashable類型:「快譯通」在Python
這裏的任何地方是我的代碼:
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
的內容。
回溯:用於分別媽媽,momvec和MFK
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'
值:
[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導入後,也不會定義「媽媽」,「媽媽」和「MFK」。 – DSM