pairs = [([0, -2], -1), ([4, 7, 10, 11, 12, 17], 9), ([4, 7, 10, 11, 12, 17], 8)]
def nearest_value(values, one: int) -> int:
def newabs(x):
"""Здесь наблюдается так называемое замыкание:
в этой функции доступны переменные из внешней функции на момент
её исполнения. То есть в контексте функции "замыкается" контекст исполнения
внешней функции.
"""
return abs(x - one), x
result = sorted(values, key=newabs)
return result[0]
for in_values, in_one in pairs:
print(nearest_value(in_values, in_one))
Спасибо, то есть x определяет то что в случае одинакового значения (abs(x-one)) сортировка идет по значению xx?