当前位置: 代码迷 >> python >> sympy.Matrix哈希值差异
  详细解决方案

sympy.Matrix哈希值差异

热度:71   发布时间:2023-07-14 09:53:06.0

我当前正在使用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的错误还是我应该换一种方式?

如评论者所述,您需要更新到较新版本的SymPy。 在较旧的版本中,可变矩阵是可哈希的,这是不正确的。 现在, hash(Matrix([[0,0,1],[0,1,0],[1,0,0]]))会引发TypeError 如果要使用可哈希矩阵,请使用ImmutableMatrix

  相关解决方案