Ваше изображение выглядит как virtual_box_i/j
, равное int64
, что может указывать на тип NumPy. Целые числа типа NumPy (к сожалению или нет) такие же, как и обычные целые числа. Попробуйте использовать
(int(virtual_box_i), int(virtual_box_j))
вместо этого, чтобы явно преобразовать (предполагаемые) целые числа NumPy в стандартные целые числа Python.
Обратите внимание, что в Python 2.7.13 и NumPy 1.13.1 я не могу воспроизвести проблему:
Python 2.7.13 (default, Feb 1 2017, 17:19:54)
[GCC 5.4.1 20160904] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> d = {(1, 2L): 'test'}
>>> x = 1
>>> y = 2L
>>> (x, y) in d
True
>>> (x, 2) in d
True
>>> import numpy as np
>>> a = np.int64(1)
>>> b = np.int64(2)
>>> (a, b) in d
True
>>> np.__version__
'1.13.1'
Как уже упоминалось в комментариях, сравнения с np.int64
оцениваются правильно, даже когда ключ состоит из целых или длинных.