Это простое понимание списка (я изменил второе значение, чтобы сделать одно ложное):
ten_numbers = [4504, 4025, 4302, 4706, 4332, 4656, 3045, 1056, 4556, 4032]
[abs(el - ten_numbers[-1]) > 100 for el in ten_numbers[:-1]]
# [True, False, True, True, True, True, True, True, True]
Учитывая массив логических значений, вы можете просто передать его в sum()
, чтобы получить count:
answer = [abs(el - ten_numbers[-1]) > 100 for el in ten_numbers[:-1]]
sum(answer)
# 8
Вы также можете выдвинуть тест в его собственную функцию. Это может быть немного более читабельно и гибко:
ten_numbers = [4504, 4025, 4302, 4706, 4332, 4656, 3045, 1056, 4556, 4032]
is_different = lambda x: abs(x - ten_numbers[-1]) > 100
list(map(is_different, ten_numbers[:-1]))
# same result