2016-06-10 3 views
4

상황이 꽤 이상합니다. 나는 절임 모듈에 대해 모르는 뭔가가있을 것으로 예상합니다.동일한 튜플은 다른 절임을 제공합니다

나는 두 개의 튜플 s1s2을 가지고 있습니다. 비교해 보면 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\[email protected]\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\[email protected]\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 

나는 그들을 다시 unpickle과 결과를 비교 그들은 동일한 경우 :

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

print(upk1 == upk2) 
True 

그래서 질문이 문제가 발생하고 어떻게 그것을 방지하기 위해 무엇입니까? 일부 메타 데이터가 절인 있습니까?

흠, 관련 질문이 하나 있습니다. Python pickle not one-to-one: different pickles give same object. 그래서 pickle은 동일한 객체에 대해 다른 결과를 반환 할 수 있습니까? 따라서 해시 계산에는 적합하지 않습니까? 필자는 절인 된 표현을 기반으로 md5 해시를 계산할 계획이었습니다.

UPDATE : s1s2의 텍스트 표현 :

(('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))) 
+1

튜플의 내용은 무엇입니까? 's1'과's2'는 각각의 요소가 동일하다면 동등한 것으로 간주됩니다. 만약 그 원소들의 타입이 ('__eq__'을 정의함으로써) 등가 연산자를 오버라이드한다면, 내부 상태가 다른 두 개의 다른 객체 ('pickle'에 의해 보여짐)는 동일하다고 간주 될 수 있습니다. –

+0

해시를 어떻게 사용하고 있습니까? 예를 들어, '1'과 '1.0'을 구별하기를 원하십니까?(더 접선적인 것, 피 위체가 어디서 오는가?) – mwchase

+0

@WillVousden, 나는 's1'과's2'의 텍스트 표현을 추가했습니다 (그것들은 동일합니다). 's1'과's2'는 해쉬 가능하고'hash'는 완벽하게 작동하지만 충돌 가능성이 높기 때문에 저장 및 중복 찾기에 적합하지 않습니다. – DrDom

답변

4

문제는 그 picklepreserves identity relationships between subobjects (이 효율성과 재귀 오브젝트를 처리하기 위해) : 여기

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

, a1a2 그들이이 (동일하지만 서로 다른 개체 다른 id; When does python choose to intern a string 참조); s1s2 다시 동일하지만 s2의 세번째 요소는 제 소자와 같은 목적은 s1 반면에 세 번째 요소는 제 소자와 같은 객체 이다.

우리는 피클을 분해하여이를 볼 수 있습니다

>>> 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 

A (비효율적 인 경우) 해결 방법은 자신의 repr에서 튜플 다시 ast.literal_eval를 사용하여 객체 ID를 깰 수 빠른 :

>>> print(pickle.dumps(ast.literal_eval(repr(s1))) == pickle.dumps(ast.literal_eval(repr(s2)))) 
True 
+0

위대한 설명과 재미있는 핵심 : – DrDom

+0

하지만 'ast.literal_eval'을 사용하면 어떤 이점이 있습니까? 'repr'만으로 작동합니다. – DrDom

+1

@DrDom'ast.literal_eval'은 일반 데이터 객체에 대해'repr'을 뒤집어서 작업을 계속할 수있는 튜플 객체를 다시 제공합니다. 해시에'pickle'만을 사용한다면'repr'을 직접 사용하면됩니다. – ecatmur

0

나는 정렬 화 모듈 (https://docs.python.org/2/library/marshal.html#module-marshal), 및 작품 시도했습니다. 예를 봐

import marshal 
# code ... 
string1 = marshal.dumps(sp1) 
+1

이 주석은'pickle'과'cPickle'의 차이점과 관련이 있습니다. 필자는'pickle' 모듈만을 사용했습니다. – DrDom

+0

예, 이유가 있습니다. 섹션을 삭제했습니다. marshal 모듈을 테스트하고 작동합니다!, 편집을보십시오. –

+0

예, 작동합니다. 'marshar'가 더 일관되게 작동하고 직렬화를 위해 피클이 작동합니다. 그러나, 나는 유지 보수자가이 모듈을 (주어진 링크 설명에 따라) 불완전한 방식으로 변경할 수 있기 때문에 그것을 사용하는 것을 권장하지 않는다. – DrDom

관련 문제