any
работает как положено, но не так, как вы ожидали, что это сработает.
any
возвращает True
, как только он находит элемент, который оценивается как True
.В случае чисел это означает, что он вернет True
, как только найдет ненулевой элемент.
То, что вы хотели написать, это any(num > VCI for num in anom_con)
в первом примере и any(num > z for num in z_con)
во втором примере.
Тот факт, что
z = -0.668
z_con = [-2,-1.5,-1,1,1.5,2]
print z < any(z_con)
выводит "правильный" вывод, является чисто случайным.Он печатает True
, потому что:
any(z_con)
оценивается как True
(поскольку z_con
имеет хотя бы одно ненулевое число) z < True
оценивается как True
потому что True
имеет базовое значение 1, а -0.668 < 1
равно True
.