Дан список чисел. Найдите выбросы методом IQR и замените их на границы:
- Q1 = 25-й перцентиль, Q3 = 75-й перцентиль
- IQR = Q3 - Q1
- Нижняя граница = Q1 - 1.5 × IQR
- Верхняя граница = Q3 + 1.5 × IQR
Значения за границами → обрезать до границ. Округлить до 2 знаков.
def clip_outliers(values: list[float]) -> list[float]:
clip_outliers([1, 2, 3, 4, 5, 100]) → [1.0, 2.0, 3.0, 4.0, 5.0, 8.5]
Объяснение: Q1=2.25, Q3=4.75, IQR=2.5. Upper=8.5. 100 > 8.5 → 8.50.
values = [1,2,3,4,5,100][1,2,3,4,5,8.5]values = [10,12,14,11,13,15,50,-20][10,12,14,11,13,15,19.5,5.5]