Я из новичков))
Есть задача:
Вам даны список значений и значение, относительно которого, надо найти ближайшее.
Например, мы имеем следующий ряд чисел: 4, 7, 10, 11, 12, 17. И нам нужно найти ближайшее значение к цифре 9. Если отсортировать этот ряд по возрастанию, то слева от 9 будет 7, а справа 10. Но 10 - находится ближе, чем 7, значит правильный ответ 10.
Я решил таким образом:
def nearest_value(values, one: int) -> int:
return sorted(values, key=lambda x: (abs(x-one)))[0]
print(nearest_value([4, 7, 10, 11, 12, 17], 9)) == 10
print(nearest_value([4, 7, 10, 11, 12, 17], 8)) == 7
Но, если ищем в этих значениях:
print(nearest_value([0, -2}, -1)) == -2
моя функция возвращает 0, хотя должна вернуть -2.
Нашел такое решение:
def nearest_value(values, one: int) -> int:
return sorted(values, key=lambda x: (abs(x-one), x))[0]
Но не понимаю что делает последний
"x" который после запятой?