相同的元组给出不同的泡菜

2024-02-27

这种情况很奇怪,我希望有一些关于 pickle 模块的东西我不知道。

我有两个元组s1 and s2。如果我比较它们它会返回True.

s1 == s2
True

如果我腌制它们并比较结果,它会返回False

pickle.dumps(s1) == pickle.dumps(s2)
False

让我们看看这些字节字符串。他们确实不同:

pk1 = pickle.dumps(s1)
pk2 = pickle.dumps(s2)

print(pk1)
b'\x80\x03((X!\x00\x00\x00AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3q\x00X!\x00\x00\x00AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3q\x01K\x01\x86q\x02X!\x00\x00\x00AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2q\x03K\x02\x86q\x04X!\x00\x00\x00AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4q\x05K\x05\x86q\x06X!\x00\x00\x00DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3q\x07K\x04\x86q\x08X!\x00\x00\x00DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3q\tK\x04\x86q\nX!\x00\x00\x00DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3q\x0bK\x04\x86q\x0cX!\x00\x00\x00DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3q\rK\x04\x86q\x0eX!\x00\x00\x00HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2q\x0fK\x02\x86q\x10X!\x00\x00\x00HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2q\x11K\x02\x86q\x12X!\x00\x00\x00HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2q\x13K\x03\x86q\x14X!\x00\x00\x00NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3q\x15K\x00\x86q\x16X!\x00\x00\x00NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3q\x17K\x00\x86q\x18X!\x00\x00\x00PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3q\x19K\x04\x86q\x1aX!\x00\x00\x00PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3q\x1bK\x04\x86q\x1cX!\x00\x00\x00aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2q\x1dK\x02\x86q\x1eX!\x00\x00\x00aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2q\x1fK\x03\x86q tq!(h\x01h\x00K\x01\x86q"h\x03K\x03\x86q#h\x05K\x05\x86q$h\x07K\x04\x86q%h\tK\x03\x86q&h\x0bK\x04\x86q\'h\rK\x04\x86q(h\x0fK\x02\x86q)h\x11K\x01\x86q*h\x13K\x03\x86q+h\x15K\x00\x86q,h\x17K\x01\x86q-h\x19K\x03\x86q.h\x1bK\x04\x86q/h\x1dK\x02\x86q0h\x1fK\x03\x86q1tq2(h\x03h\x00K\x02\x86q3h\x01K\x03\x86q4h\x05K\x04\x86q5h\x07K\x03\x86q6h\tK\x03\x86q7h\x0bK\x02\x86q8h\rK\x03\x86q9h\x0fK\x00\x86q:h\x11K\x02\x86q;h\x13K\x02\x86q<h\x15K\x02\x86q=h\x17K\x02\x86q>h\x19K\x03\x86q?h\x1bK\x03\x86q@h\x1dK\x00\x86qAh\x1fK\x02\x86qBtqC(h\x05h\x00K\x05\x86qDh\x01K\x05\x86qEh\x03K\x04\x86qFh\x07K\x01\x86qGh\tK\x02\x86qHh\rK\x02\x86qIh\x0bK\x03\x86qJh\x0fK\x04\x86qKh\x11K\x04\x86qLh\x13K\x02\x86qMh\x15K\x05\x86qNh\x17K\x05\x86qOh\x19K\x02\x86qPh\x1bK\x02\x86qQh\x1dK\x04\x86qRh\x1fK\x02\x86qStqT(h\x07h\x00K\x04\x86qUh\x01K\x04\x86qVh\x03K\x03\x86qWh\x05K\x01\x86qXh\tK\x02\x86qYh\x0bK\x02\x86qZh\rK\x02\x86q[h\x0fK\x03\x86q\\h\x11K\x02\x86q]h\x13K\x01\x86q^h\x15K\x04\x86q_h\x17K\x04\x86q`h\x19K\x02\x86qah\x1bK\x02\x86qbh\x1dK\x03\x86qch\x1fK\x01\x86qdtqe(h\th\x00K\x04\x86qfh\x01K\x03\x86qgh\x03K\x03\x86qhh\x05K\x02\x86qih\x07K\x02\x86qjh\x0bK\x01\x86qkh\rK\x01\x86qlh\x0fK\x03\x86qmh\x11K\x02\x86qnh\x13K\x01\x86qoh\x15K\x03\x86qph\x17K\x04\x86qqh\x19K\x00\x86qrh\x1bK\x00\x86qsh\x1dK\x03\x86qth\x1fK\x01\x86qutqv(h\x0bh\x00K\x04\x86qwh\x01K\x04\x86qxh\x03K\x02\x86qyh\x05K\x03\x86qzh\x07K\x02\x86q{h\tK\x01\x86q|h\rK\x01\x86q}h\x0fK\x03\x86q~h\x11K\x03\x86q\x7fh\x13K\x02\x86q\x80h\x15K\x04\x86q\x81h\x17K\x04\x86q\x82h\x19K\x01\x86q\x83h\x1bK\x00\x86q\x84h\x1dK\x03\x86q\x85h\x1fK\x02\x86q\x86tq\x87(h\rh\x00K\x04\x86q\x88h\x01K\x04\x86q\x89h\x03K\x03\x86q\x8ah\x05K\x02\x86q\x8bh\x07K\x02\x86q\x8ch\tK\x01\x86q\x8dh\x0bK\x01\x86q\x8eh\x0fK\x03\x86q\x8fh\x11K\x03\x86q\x90h\x13K\x02\x86q\x91h\x15K\x04\x86q\x92h\x17K\x04\x86q\x93h\x19K\x01\x86q\x94h\x1bK\x00\x86q\x95h\x1dK\x03\x86q\x96h\x1fK\x02\x86q\x97tq\x98(h\x0fh\x00K\x02\x86q\x99h\x01K\x02\x86q\x9ah\x03K\x00\x86q\x9bh\x05K\x04\x86q\x9ch\x07K\x03\x86q\x9dh\tK\x03\x86q\x9eh\x0bK\x03\x86q\x9fh\rK\x03\x86q\xa0h\x11K\x02\x86q\xa1h\x13K\x02\x86q\xa2h\x15K\x02\x86q\xa3h\x17K\x02\x86q\xa4h\x19K\x03\x86q\xa5h\x1bK\x03\x86q\xa6h\x1dK\x00\x86q\xa7h\x1fK\x02\x86q\xa8tq\xa9(h\x11h\x00K\x02\x86q\xaah\x01K\x01\x86q\xabh\x03K\x02\x86q\xach\x05K\x04\x86q\xadh\x07K\x02\x86q\xaeh\tK\x02\x86q\xafh\x0bK\x03\x86q\xb0h\rK\x03\x86q\xb1h\x0fK\x02\x86q\xb2h\x13K\x01\x86q\xb3h\x15K\x01\x86q\xb4h\x17K\x02\x86q\xb5h\x19K\x02\x86q\xb6h\x1bK\x02\x86q\xb7h\x1dK\x02\x86q\xb8h\x1fK\x01\x86q\xb9tq\xba(h\x13h\x00K\x03\x86q\xbbh\x01K\x03\x86q\xbch\x03K\x02\x86q\xbdh\x05K\x02\x86q\xbeh\x07K\x01\x86q\xbfh\tK\x01\x86q\xc0h\x0bK\x02\x86q\xc1h\rK\x02\x86q\xc2h\x0fK\x02\x86q\xc3h\x11K\x01\x86q\xc4h\x15K\x03\x86q\xc5h\x17K\x03\x86q\xc6h\x19K\x01\x86q\xc7h\x1bK\x02\x86q\xc8h\x1dK\x02\x86q\xc9h\x1fK\x00\x86q\xcatq\xcb(h\x15h\x00K\x00\x86q\xcch\x01K\x00\x86q\xcdh\x03K\x02\x86q\xceh\x05K\x05\x86q\xcfh\x07K\x04\x86q\xd0h\tK\x03\x86q\xd1h\x0bK\x04\x86q\xd2h\rK\x04\x86q\xd3h\x0fK\x02\x86q\xd4h\x11K\x01\x86q\xd5h\x13K\x03\x86q\xd6h\x17K\x00\x86q\xd7h\x19K\x03\x86q\xd8h\x1bK\x04\x86q\xd9h\x1dK\x02\x86q\xdah\x1fK\x03\x86q\xdbtq\xdc(h\x17h\x00K\x00\x86q\xddh\x01K\x01\x86q\xdeh\x03K\x02\x86q\xdfh\x05K\x05\x86q\xe0h\x07K\x04\x86q\xe1h\tK\x04\x86q\xe2h\x0bK\x04\x86q\xe3h\rK\x04\x86q\xe4h\x0fK\x02\x86q\xe5h\x11K\x02\x86q\xe6h\x13K\x03\x86q\xe7h\x15K\x00\x86q\xe8h\x19K\x04\x86q\xe9h\x1bK\x04\x86q\xeah\x1dK\x02\x86q\xebh\x1fK\x03\x86q\xectq\xed(h\x19h\x00K\x04\x86q\xeeh\x01K\x03\x86q\xefh\x03K\x03\x86q\xf0h\x05K\x02\x86q\xf1h\x07K\x02\x86q\xf2h\tK\x00\x86q\xf3h\x0bK\x01\x86q\xf4h\rK\x01\x86q\xf5h\x0fK\x03\x86q\xf6h\x11K\x02\x86q\xf7h\x13K\x01\x86q\xf8h\x15K\x03\x86q\xf9h\x17K\x04\x86q\xfah\x1bK\x00\x86q\xfbh\x1dK\x03\x86q\xfch\x1fK\x01\x86q\xfdtq\xfe(h\x1bh\x00K\x04\x86q\xffh\x01K\x04\x86r\x00\x01\x00\x00h\x03K\x03\x86r\x01\x01\x00\x00h\x05K\x02\x86r\x02\x01\x00\x00h\x07K\x02\x86r\x03\x01\x00\x00h\tK\x00\x86r\x04\x01\x00\x00h\x0bK\x00\x86r\x05\x01\x00\x00h\rK\x00\x86r\x06\x01\x00\x00h\x0fK\x03\x86r\x07\x01\x00\x00h\x11K\x02\x86r\x08\x01\x00\x00h\x13K\x02\x86r\t\x01\x00\x00h\x15K\x04\x86r\n\x01\x00\x00h\x17K\x04\x86r\x0b\x01\x00\x00h\x19K\x00\x86r\x0c\x01\x00\x00h\x1dK\x03\x86r\r\x01\x00\x00h\x1fK\x02\x86r\x0e\x01\x00\x00tr\x0f\x01\x00\x00(h\x1dh\x00K\x02\x86r\x10\x01\x00\x00h\x01K\x02\x86r\x11\x01\x00\x00h\x03K\x00\x86r\x12\x01\x00\x00h\x05K\x04\x86r\x13\x01\x00\x00h\x07K\x03\x86r\x14\x01\x00\x00h\tK\x03\x86r\x15\x01\x00\x00h\x0bK\x03\x86r\x16\x01\x00\x00h\rK\x03\x86r\x17\x01\x00\x00h\x0fK\x00\x86r\x18\x01\x00\x00h\x11K\x02\x86r\x19\x01\x00\x00h\x13K\x02\x86r\x1a\x01\x00\x00h\x15K\x02\x86r\x1b\x01\x00\x00h\x17K\x02\x86r\x1c\x01\x00\x00h\x19K\x03\x86r\x1d\x01\x00\x00h\x1bK\x03\x86r\x1e\x01\x00\x00h\x1fK\x02\x86r\x1f\x01\x00\x00tr \x01\x00\x00(h\x1fh\x00K\x03\x86r!\x01\x00\x00h\x01K\x03\x86r"\x01\x00\x00h\x03K\x02\x86r#\x01\x00\x00h\x05K\x02\x86r$\x01\x00\x00h\x07K\x01\x86r%\x01\x00\x00h\tK\x01\x86r&\x01\x00\x00h\x0bK\x02\x86r\'\x01\x00\x00h\rK\x02\x86r(\x01\x00\x00h\x0fK\x02\x86r)\x01\x00\x00h\x11K\x01\x86r*\x01\x00\x00h\x13K\x00\x86r+\x01\x00\x00h\x15K\x03\x86r,\x01\x00\x00h\x17K\x03\x86r-\x01\x00\x00h\x19K\x01\x86r.\x01\x00\x00h\x1bK\x02\x86r/\x01\x00\x00h\x1dK\x02\x86r0\x01\x00\x00tr1\x01\x00\x00tr2\x01\x00\x00.'

print(pk2)
b'\x80\x03((X!\x00\x00\x00AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3q\x00X!\x00\x00\x00AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3q\x01K\x01\x86q\x02X!\x00\x00\x00AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2q\x03K\x02\x86q\x04X!\x00\x00\x00AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4q\x05K\x05\x86q\x06X!\x00\x00\x00DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3q\x07K\x04\x86q\x08X!\x00\x00\x00DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3q\tK\x04\x86q\nX!\x00\x00\x00DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3q\x0bK\x04\x86q\x0cX!\x00\x00\x00DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3q\rK\x04\x86q\x0eX!\x00\x00\x00HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2q\x0fK\x02\x86q\x10X!\x00\x00\x00HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2q\x11K\x02\x86q\x12X!\x00\x00\x00HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2q\x13K\x03\x86q\x14X!\x00\x00\x00NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3q\x15K\x00\x86q\x16X!\x00\x00\x00NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3q\x17K\x00\x86q\x18X!\x00\x00\x00PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3q\x19K\x04\x86q\x1aX!\x00\x00\x00PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3q\x1bK\x04\x86q\x1cX!\x00\x00\x00aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2q\x1dK\x02\x86q\x1eX!\x00\x00\x00aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2q\x1fK\x03\x86q tq!(h\x01h\x00K\x01\x86q"h\x03K\x03\x86q#h\x05K\x05\x86q$h\x07K\x04\x86q%h\tK\x03\x86q&h\x0bK\x04\x86q\'h\rK\x04\x86q(h\x0fK\x02\x86q)h\x11K\x01\x86q*h\x13K\x03\x86q+h\x15K\x00\x86q,h\x17K\x01\x86q-h\x19K\x03\x86q.h\x1bK\x04\x86q/h\x1dK\x02\x86q0h\x1fK\x03\x86q1tq2(h\x03h\x00K\x02\x86q3h\x01K\x03\x86q4h\x05K\x04\x86q5h\x07K\x03\x86q6h\tK\x03\x86q7h\rK\x02\x86q8h\x0bK\x03\x86q9h\x0fK\x00\x86q:h\x11K\x02\x86q;h\x13K\x02\x86q<h\x15K\x02\x86q=h\x17K\x02\x86q>h\x19K\x03\x86q?h\x1bK\x03\x86q@h\x1dK\x00\x86qAh\x1fK\x02\x86qBtqC(h\x05h\x00K\x05\x86qDh\x01K\x05\x86qEh\x03K\x04\x86qFh\x07K\x01\x86qGh\tK\x02\x86qHh\x0bK\x02\x86qIh\rK\x03\x86qJh\x0fK\x04\x86qKh\x11K\x04\x86qLh\x13K\x02\x86qMh\x15K\x05\x86qNh\x17K\x05\x86qOh\x19K\x02\x86qPh\x1bK\x02\x86qQh\x1dK\x04\x86qRh\x1fK\x02\x86qStqT(h\x07h\x00K\x04\x86qUh\x01K\x04\x86qVh\x03K\x03\x86qWh\x05K\x01\x86qXh\tK\x02\x86qYh\x0bK\x02\x86qZh\rK\x02\x86q[h\x0fK\x03\x86q\\h\x11K\x02\x86q]h\x13K\x01\x86q^h\x15K\x04\x86q_h\x17K\x04\x86q`h\x19K\x02\x86qah\x1bK\x02\x86qbh\x1dK\x03\x86qch\x1fK\x01\x86qdtqe(h\th\x00K\x04\x86qfh\x01K\x03\x86qgh\x03K\x03\x86qhh\x05K\x02\x86qih\x07K\x02\x86qjh\x0bK\x01\x86qkh\rK\x01\x86qlh\x0fK\x03\x86qmh\x11K\x02\x86qnh\x13K\x01\x86qoh\x15K\x03\x86qph\x17K\x04\x86qqh\x19K\x00\x86qrh\x1bK\x00\x86qsh\x1dK\x03\x86qth\x1fK\x01\x86qutqv(h\rh\x00K\x04\x86qwh\x01K\x04\x86qxh\x03K\x02\x86qyh\x05K\x03\x86qzh\x07K\x02\x86q{h\tK\x01\x86q|h\x0bK\x01\x86q}h\x0fK\x03\x86q~h\x11K\x03\x86q\x7fh\x13K\x02\x86q\x80h\x15K\x04\x86q\x81h\x17K\x04\x86q\x82h\x19K\x01\x86q\x83h\x1bK\x00\x86q\x84h\x1dK\x03\x86q\x85h\x1fK\x02\x86q\x86tq\x87(h\x0bh\x00K\x04\x86q\x88h\x01K\x04\x86q\x89h\x03K\x03\x86q\x8ah\x05K\x02\x86q\x8bh\x07K\x02\x86q\x8ch\tK\x01\x86q\x8dh\rK\x01\x86q\x8eh\x0fK\x03\x86q\x8fh\x11K\x03\x86q\x90h\x13K\x02\x86q\x91h\x15K\x04\x86q\x92h\x17K\x04\x86q\x93h\x19K\x01\x86q\x94h\x1bK\x00\x86q\x95h\x1dK\x03\x86q\x96h\x1fK\x02\x86q\x97tq\x98(h\x0fh\x00K\x02\x86q\x99h\x01K\x02\x86q\x9ah\x03K\x00\x86q\x9bh\x05K\x04\x86q\x9ch\x07K\x03\x86q\x9dh\tK\x03\x86q\x9eh\x0bK\x03\x86q\x9fh\rK\x03\x86q\xa0h\x11K\x02\x86q\xa1h\x13K\x02\x86q\xa2h\x15K\x02\x86q\xa3h\x17K\x02\x86q\xa4h\x19K\x03\x86q\xa5h\x1bK\x03\x86q\xa6h\x1dK\x00\x86q\xa7h\x1fK\x02\x86q\xa8tq\xa9(h\x11h\x00K\x02\x86q\xaah\x01K\x01\x86q\xabh\x03K\x02\x86q\xach\x05K\x04\x86q\xadh\x07K\x02\x86q\xaeh\tK\x02\x86q\xafh\x0bK\x03\x86q\xb0h\rK\x03\x86q\xb1h\x0fK\x02\x86q\xb2h\x13K\x01\x86q\xb3h\x15K\x01\x86q\xb4h\x17K\x02\x86q\xb5h\x19K\x02\x86q\xb6h\x1bK\x02\x86q\xb7h\x1dK\x02\x86q\xb8h\x1fK\x01\x86q\xb9tq\xba(h\x13h\x00K\x03\x86q\xbbh\x01K\x03\x86q\xbch\x03K\x02\x86q\xbdh\x05K\x02\x86q\xbeh\x07K\x01\x86q\xbfh\tK\x01\x86q\xc0h\x0bK\x02\x86q\xc1h\rK\x02\x86q\xc2h\x0fK\x02\x86q\xc3h\x11K\x01\x86q\xc4h\x15K\x03\x86q\xc5h\x17K\x03\x86q\xc6h\x19K\x01\x86q\xc7h\x1bK\x02\x86q\xc8h\x1dK\x02\x86q\xc9h\x1fK\x00\x86q\xcatq\xcb(h\x15h\x00K\x00\x86q\xcch\x01K\x00\x86q\xcdh\x03K\x02\x86q\xceh\x05K\x05\x86q\xcfh\x07K\x04\x86q\xd0h\tK\x03\x86q\xd1h\x0bK\x04\x86q\xd2h\rK\x04\x86q\xd3h\x0fK\x02\x86q\xd4h\x11K\x01\x86q\xd5h\x13K\x03\x86q\xd6h\x17K\x00\x86q\xd7h\x19K\x03\x86q\xd8h\x1bK\x04\x86q\xd9h\x1dK\x02\x86q\xdah\x1fK\x03\x86q\xdbtq\xdc(h\x17h\x00K\x00\x86q\xddh\x01K\x01\x86q\xdeh\x03K\x02\x86q\xdfh\x05K\x05\x86q\xe0h\x07K\x04\x86q\xe1h\tK\x04\x86q\xe2h\x0bK\x04\x86q\xe3h\rK\x04\x86q\xe4h\x0fK\x02\x86q\xe5h\x11K\x02\x86q\xe6h\x13K\x03\x86q\xe7h\x15K\x00\x86q\xe8h\x19K\x04\x86q\xe9h\x1bK\x04\x86q\xeah\x1dK\x02\x86q\xebh\x1fK\x03\x86q\xectq\xed(h\x19h\x00K\x04\x86q\xeeh\x01K\x03\x86q\xefh\x03K\x03\x86q\xf0h\x05K\x02\x86q\xf1h\x07K\x02\x86q\xf2h\tK\x00\x86q\xf3h\x0bK\x01\x86q\xf4h\rK\x01\x86q\xf5h\x0fK\x03\x86q\xf6h\x11K\x02\x86q\xf7h\x13K\x01\x86q\xf8h\x15K\x03\x86q\xf9h\x17K\x04\x86q\xfah\x1bK\x00\x86q\xfbh\x1dK\x03\x86q\xfch\x1fK\x01\x86q\xfdtq\xfe(h\x1bh\x00K\x04\x86q\xffh\x01K\x04\x86r\x00\x01\x00\x00h\x03K\x03\x86r\x01\x01\x00\x00h\x05K\x02\x86r\x02\x01\x00\x00h\x07K\x02\x86r\x03\x01\x00\x00h\tK\x00\x86r\x04\x01\x00\x00h\x0bK\x00\x86r\x05\x01\x00\x00h\rK\x00\x86r\x06\x01\x00\x00h\x0fK\x03\x86r\x07\x01\x00\x00h\x11K\x02\x86r\x08\x01\x00\x00h\x13K\x02\x86r\t\x01\x00\x00h\x15K\x04\x86r\n\x01\x00\x00h\x17K\x04\x86r\x0b\x01\x00\x00h\x19K\x00\x86r\x0c\x01\x00\x00h\x1dK\x03\x86r\r\x01\x00\x00h\x1fK\x02\x86r\x0e\x01\x00\x00tr\x0f\x01\x00\x00(h\x1dh\x00K\x02\x86r\x10\x01\x00\x00h\x01K\x02\x86r\x11\x01\x00\x00h\x03K\x00\x86r\x12\x01\x00\x00h\x05K\x04\x86r\x13\x01\x00\x00h\x07K\x03\x86r\x14\x01\x00\x00h\tK\x03\x86r\x15\x01\x00\x00h\x0bK\x03\x86r\x16\x01\x00\x00h\rK\x03\x86r\x17\x01\x00\x00h\x0fK\x00\x86r\x18\x01\x00\x00h\x11K\x02\x86r\x19\x01\x00\x00h\x13K\x02\x86r\x1a\x01\x00\x00h\x15K\x02\x86r\x1b\x01\x00\x00h\x17K\x02\x86r\x1c\x01\x00\x00h\x19K\x03\x86r\x1d\x01\x00\x00h\x1bK\x03\x86r\x1e\x01\x00\x00h\x1fK\x02\x86r\x1f\x01\x00\x00tr \x01\x00\x00(h\x1fh\x00K\x03\x86r!\x01\x00\x00h\x01K\x03\x86r"\x01\x00\x00h\x03K\x02\x86r#\x01\x00\x00h\x05K\x02\x86r$\x01\x00\x00h\x07K\x01\x86r%\x01\x00\x00h\tK\x01\x86r&\x01\x00\x00h\x0bK\x02\x86r\'\x01\x00\x00h\rK\x02\x86r(\x01\x00\x00h\x0fK\x02\x86r)\x01\x00\x00h\x11K\x01\x86r*\x01\x00\x00h\x13K\x00\x86r+\x01\x00\x00h\x15K\x03\x86r,\x01\x00\x00h\x17K\x03\x86r-\x01\x00\x00h\x19K\x01\x86r.\x01\x00\x00h\x1bK\x02\x86r/\x01\x00\x00h\x1dK\x02\x86r0\x01\x00\x00tr1\x01\x00\x00tr2\x01\x00\x00.'

for n, (i, j) in enumerate(zip(pk1, pk2)):
    if i != j:
        print(n, i, j)

924 11 13
931 13 11
1042 13 11
1049 11 13
1359 11 13
1403 13 11
1477 13 11
1521 11 13

如果我将它们解开并比较结果,它们是相同的:

upk1 = pickle.loads(pk1)
upk2 = pickle.loads(pk2)

print(upk1 == upk2)
True

那么问题是什么导致了这个问题以及如何避免它?是否有一些元数据腌制?

嗯,我发现了一个相关问题Python pickle 不是一对一的:不同的 pickle 给出相同的对象 https://stackoverflow.com/questions/21271479/python-pickle-not-one-to-one-different-pickles-give-same-object。那么pickle对于相同的对象可以返回不同的结果吗?那么它不适合进行哈希计算吗?因为我计划根据 pickled 表示来计算 md5 哈希值。

更新:文本表示s1 and s2:

(('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3',
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 1),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 2),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 5),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 4),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 4),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 4),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 4),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 2),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 2),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 3),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 0),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 0),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 4),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 4),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 2),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 3)),
 ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 1),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 3),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 5),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 4),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 3),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 4),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 4),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 2),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 1),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 3),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 0),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 1),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 3),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 4),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 2),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 3)),
 ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 2),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 3),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 4),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 3),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 3),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 2),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 3),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 0),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 2),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 2),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 2),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 2),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 3),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 3),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 0),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 2)),
 ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 5),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 5),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 4),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 1),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 2),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 2),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 3),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 4),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 4),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 2),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 5),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 5),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 2),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 2),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 4),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 2)),
 ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 4),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 4),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 3),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 1),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 2),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 2),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 2),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 3),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 2),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 1),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 4),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 4),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 2),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 2),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 3),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 1)),
 ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 4),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 3),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 3),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 2),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 2),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 1),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 1),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 3),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 2),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 1),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 3),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 4),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 0),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 0),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 3),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 1)),
 ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 4),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 4),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 2),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 3),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 2),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 1),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 1),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 3),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 3),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 2),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 4),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 4),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 1),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 0),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 3),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 2)),
 ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 4),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 4),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 3),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 2),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 2),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 1),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 1),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 3),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 3),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 2),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 4),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 4),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 1),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 0),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 3),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 2)),
 ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 2),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 2),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 0),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 4),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 3),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 3),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 3),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 3),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 2),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 2),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 2),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 2),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 3),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 3),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 0),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 2)),
 ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 2),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 1),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 2),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 4),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 2),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 2),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 3),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 3),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 2),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 1),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 1),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 2),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 2),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 2),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 2),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 1)),
 ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 3),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 3),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 2),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 2),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 1),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 1),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 2),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 2),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 2),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 1),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 3),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 3),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 1),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 2),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 2),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 0)),
 ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 0),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 0),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 2),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 5),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 4),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 3),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 4),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 4),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 2),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 1),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 3),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 0),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 3),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 4),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 2),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 3)),
 ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 0),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 1),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 2),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 5),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 4),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 4),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 4),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 4),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 2),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 2),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 3),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 0),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 4),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 4),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 2),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 3)),
 ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 4),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 3),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 3),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 2),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 2),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 0),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 1),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 1),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 3),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 2),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 1),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 3),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 4),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 0),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 3),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 1)),
 ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 4),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 4),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 3),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 2),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 2),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 0),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 0),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 0),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 3),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 2),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 2),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 4),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 4),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 0),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 3),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 2)),
 ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 2),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 2),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 0),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 4),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 3),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 3),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 3),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 3),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 0),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 2),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 2),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 2),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 2),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 3),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 3),
  ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2', 2)),
 ('aA2A2A3A3D1D1D2D2H0H1H2N3N3P1P2a2',
  ('AA1A2A5D4D4D4D4H2H2H3N0N0P4P4a2a3', 3),
  ('AA1A3A5D3D4D4D4H1H2H3N0N1P3P4a2a3', 3),
  ('AA2A3A4D2D3D3D3H0H2H2N2N2P3P3a0a2', 2),
  ('AA4A5A5D1D2D2D3H2H4H4N5N5P2P2a2a4', 2),
  ('DA1A3A4A4D2D2D2H1H2H3N4N4P2P2a1a3', 1),
  ('DA2A3A3A4D1D1D2H1H2H3N3N4P0P0a1a3', 1),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 2),
  ('DA2A3A4A4D1D1D2H2H3H3N4N4P0P1a2a3', 2),
  ('HA0A2A2A4D3D3D3D3H2H2N2N2P3P3a0a2', 2),
  ('HA1A2A2A4D2D2D3D3H1H2N1N2P2P2a1a2', 1),
  ('HA2A2A3A3D1D1D2D2H1H2N3N3P1P2a0a2', 0),
  ('NA0A0A2A5D3D4D4D4H1H2H3N0P3P4a2a3', 3),
  ('NA0A1A2A5D4D4D4D4H2H2H3N0P4P4a2a3', 3),
  ('PA2A3A3A4D0D1D1D2H1H2H3N3N4P0a1a3', 1),
  ('PA2A3A4A4D0D0D0D2H2H2H3N4N4P0a2a3', 2),
  ('aA0A2A2A4D3D3D3D3H0H2H2N2N2P3P3a2', 2)))

问题是pickle 保留子对象之间的身份关系 https://docs.python.org/3/library/pickle.html#comparison-with-marshal(这是为了效率和处理递归对象):

a1 = "a" * 30
a2 = "a" * 30
s1 = (a1, a2, a1)
s2 = (a1, a2, a2)
print(pickle.dumps(s1) == pickle.dumps(s2))
False

Here, a1 and a2是平等的,但是是不同的对象(它们有不同的id; see python什么时候选择intertern一个字符串 https://stackoverflow.com/questions/10622472/when-does-python-choose-to-intern-a-string?lq=1); s1 and s2再次相等,但在s1第三个元素是同一个物体 as the first元素,同时在s2第三个元素与第一个元素是同一个对象second元素。

我们可以通过拆解泡菜来看到这一点:

>>> pickletools.dis(pickle.dumps(s1))
    0: \x80 PROTO      3
    2: X    BINUNICODE 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
   37: q    BINPUT     0
   39: X    BINUNICODE 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
   74: q    BINPUT     1
   76: h    BINGET     0  # <=== watch this line *********************
   78: \x87 TUPLE3
   79: q    BINPUT     2
   81: .    STOP
highest protocol among opcodes = 2

>>> pickletools.dis(pickle.dumps(s2))
    0: \x80 PROTO      3
    2: X    BINUNICODE 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
   37: q    BINPUT     0
   39: X    BINUNICODE 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
   74: q    BINPUT     1
   76: h    BINGET     1  # <=== this is different *********************
   78: \x87 TUPLE3
   79: q    BINPUT     2
   81: .    STOP
highest protocol among opcodes = 2

一个快速(如果效率低下)的解决方法可能是通过使用来破坏对象标识ast.literal_eval从它们重新创建元组repr:

>>> print(pickle.dumps(ast.literal_eval(repr(s1))) == pickle.dumps(ast.literal_eval(repr(s2))))
True
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

相同的元组给出不同的泡菜 的相关文章

随机推荐

  • 如何使用 Selenium 进行搜索、向下箭头并按 Enter 键

    我正在尝试搜索一家公司 在 inhersight com 上向下箭头并单击 Enter 我有以下代码 但它似乎不起作用 from selenium import webdriver from selenium webdriver commo
  • Flutter 可以高效地布局嵌套列表吗?

    这样的布局在 Flutter 中能否实现并高效渲染 Example 黄色和蓝色块都可以有大约 30 个元素 所以我想应该使用类似 ListView builder 的东西 我尝试过嵌套2个ListView builder 内部带有shrin
  • Knuth-Morris-Pratt 失效表

    我正在准备考试 正在研究 Knuth Morris Pratt 算法 考试内容是不及格表和 DFA 构建 我了解 DFA 构造 但我不太了解如何制作失败表 如果我有一个模式 abababc 的示例 如何从中构建失败表 解决办法是 失败表 0
  • 无法使用javascript下载大数据

    我在 javascript 中有大量 JSON 对象形式的数据 我已使用 JSON stringify 将其转换为字符串 现在我的用例是在文本文件中向用户提供这个大字符串 为此 我编写了下面的代码 HTML代码
  • 为什么文档为空?

    更新 使用接近工作的解决方案 我试图让 跳到内容 链接跳转到 content start 之后的第一个可聚焦元素 登录库 component ts import Component OnInit from angular core impo
  • 合并R中不同大小和条件的数据帧

    我正在尝试将 2 个 csv 文件合并为一个文件 它们有共同的 id 但大小不同 我使用了 merge 但我得到了复制的数据 我有以下数据框 SR lt c SR1 SR2 SR2 SR2 SR3 SR4 SR4 school lt c S
  • mysqli:mysqli_result 无法转换为字符串[重复]

    这个问题在这里已经有答案了 我知道已经有人问过很多类似的问题 但我无法将其转化为我的问题 所以这就是我再次询问的原因 代码过去运行良好 但由于 mysql 即将被弃用 我想将其转换为 mysqli 当尝试从数据库读取某些内容时 我收到以下错
  • 具有多列的雄辩 WHERE LIKE 子句

    我正在实现一个搜索栏 可以按名字 姓氏或两者搜索客户 所以 举例来说 Mike Hizer将匹配Mike Hizer zer Mike Hizer等等 这是我想出的 Customer where DB raw concat first na
  • 为 Windows 制作热键最简单的方法是什么?

    For example you push Ctrl V and insert the buffer content into the window How can I create my own hotkeys like that Sorr
  • 在 C#/.NET 中将参数标记为不可为空?

    是否有一个简单的属性或数据契约可以分配给函数参数来阻止null从 C NET 中传递 理想情况下 这也会在编译时进行检查以确保文字null没有在任何地方使用它并且在运行时抛出ArgumentNullException 目前我写的东西像 if
  • Cocos2d for android 支持不同分辨率

    我正在尝试构建一款游戏 并且想知道如何支持不同的分辨率和屏幕尺寸 对于精灵的位置 我实现了一个基本函数 它根据一定的比例设置位置 这是通过从sharedDirector的winSize方法获取屏幕宽度和高度获得的 但这种方法没有经过测试 因
  • 使用 std::fill 用递增的数字填充向量

    我想填写一个vector
  • git status --ignored 无限期挂起

    tl dr 跑步git status ignored在我的项目的根永远不会完成 git status工作正常 我开始从我的 IDE PhpStorm 中看到此问题的症状 尽管此问题适用于所有 IntelliJ IDE 没有与 git 相关的
  • 如何在 TreeTable 的第二列中显示树线

    我正在使用 TreeTable com jidesoft grid 请参阅树表 http www jidesoft com javadoc com jidesoft grid TreeTable html 来显示分层数据 它在第一列上使用特
  • typedef 和模板参数同名

    为什么这种情况不正确 这是合乎逻辑的 template
  • Python物理库? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有适用于 Linux 的 Python 的最新物理库 我刚刚开始使用 PyGame 来学习 Pyt
  • 您如何处理 C# 的新功能,以免它们导致编写出糟糕的代码?

    C 3 0 中引入了许多让我感到不安的功能 例如对象初始值设定项 扩展方法和隐式类型变量 现在 在 C 4 0 中 像动态关键字这样的东西我变得更加担心 我知道这些功能中的每一个CAN以适当的方式使用BUT在我看来 它们使开发人员更容易做出
  • 如何从我的应用程序将信用卡添加到 Google Pay?

    我正在开发移动银行应用程序 显然它管理我们的银行信用卡 所以现在我需要在我的应用程序中实现 将此卡添加到 Google Pay 按钮 但如何为此执行 Google Pay API 请求 我无法找到任何相关文档 这这里只有一个关于 SO 的问
  • 如何知道用户是否已付费订阅

    我正在看这个tutorial https www patchesoft com paypal api subscription php创建我自己的贝宝订阅网关 我以前从未对 API 如此困惑和迷失过 因此 当我们创建计划时 我们会设置商家偏
  • 相同的元组给出不同的泡菜

    这种情况很奇怪 我希望有一些关于 pickle 模块的东西我不知道 我有两个元组s1 and s2 如果我比较它们它会返回True s1 s2 True 如果我腌制它们并比较结果 它会返回False pickle dumps s1 pick