问题描述
我当前正在使用Python 2.7.3,sympy 0.7.1.rc1我正在构建两个矩阵,如下所示:
import sympy as sp
A = sp.Matrix([[0,0,1],[0,1,0],[1,0,0]])
B = sp.Matrix([[0,0,1],[0,1,0],[1,0,0]])
print A
print B
print A==B
print hash(A)
print hash(B)
结果是...
[0, 0, 1]
[0, 1, 0]
[1, 0, 0]
[0, 0, 1]
[0, 1, 0]
[1, 0, 0]
True
3144597
3144601
A,B的哈希值不同。 我需要将这两个矩阵放入set()中,但是哈希值不同,因此我无法做到我想要的。 是sympy的错误还是我应该换一种方式?
1楼
如评论者所述,您需要更新到较新版本的SymPy。
在较旧的版本中,可变矩阵是可哈希的,这是不正确的。
现在, hash(Matrix([[0,0,1],[0,1,0],[1,0,0]]))
会引发TypeError
。
如果要使用可哈希矩阵,请使用ImmutableMatrix
。