sympy.Matrix哈希值差异

时间:2014-03-14 02:23:03

标签: python python-2.7 sympy

我目前正在使用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()中,但是哈希值是不同的,然后我无法做我想要的。 这是一个有同情心的错误,还是我应该采取另一种方式?

1 个答案:

答案 0 :(得分:1)

正如评论者所说,您需要更新到较新版本的SymPy。在旧版本中,可变矩阵是可清除的,这是不正确的。现在,hash(Matrix([[0,0,1],[0,1,0],[1,0,0]]))应该提升TypeError。如果您想要一个可散列矩阵,请使用ImmutableMatrix

相关问题