Они на самом деле делают разные вещи. find
возвращает фактический элемент, который был найден, тогда как any
возвращает значение bool. Что вас смущает, так это отличная правда.
Любое неустановленное (нулевое?) Значение будет преобразовано в false
def x
assert !x
Так что, если вы просто проверяете false , то возвращенные значения из обоих методов будут служить одной и той же цели, поскольку по существу все объекты имеют неявное экзистенциальное логическое значение.