Кажется, что numpy
__contains__
делает что-то подобное для 2-го случая:
def __contains__(self, item):
for row in self:
if any(item_value == row_value for item_value, row_value in zip(item, row)):
return True
return False
[1,7]
работает, потому что 0
-й элемент первой строки соответствует 0
-му элементу [1,7]
. То же самое с [1,2]
и т. Д. С помощью [2,6]
6 соответствует 6 в последней строке. С помощью [2,3]
ни один из элементов не соответствует строке в том же индексе. [1, 2, 3]
тривиально, так как формы не совпадают.
Подробнее см. this , а также этот билет .