убрать большие числа из списка

у меня есть список [3,1,4,2,10,4,10...42]. Хочу убрать из него все числа, которые отличаются от остальных чисел списка в 1.5 раза. Делаю вот так:

def get_number_with_multiple_difference(numbers: list):
    numbers.sort(reverse=True)
    return numbers[0] if len(numbers) > 1 and np.mean(numbers[1:]) * 1.5 <= numbers[0] else None

Таким образом нахожу только 1 число, а нужно проверить все. Нужен какой-нибудь более изящный способ это сделать... Без костылей...


Ответы (1 шт):

Автор решения: CrazyElf

Предположу, что имелось в виду что-то такое:

return [n for i,n in enumerate(numbers) if np.mean(numbers[:i] + numbers[i+1:]) * 1.5 <= n]
→ Ссылка