Задать вопрос
  • Python поиск ближайшего значения?

    @pablos-v
    Сперва кажется что достаточно выражения abs(one - n),
    но тогда не выполняется условие "Если 2 числа находятся на одинаковом расстоянии - необходимо выбрать наименьшее из них",
    например set {0, -2} и one = -1
    Здесь одинаковая разница в 1, но выбрать нужно минимальное, т.е. -2
    Именно для этой цели нужно сравнивать не только разницу, но и номинал из множества. В вашем коде это сделано через кортеж, а можно и списком
    min(values, key=lambda n: [abs(one - n), n])

    Или же можно отсортировать множество, тогда будет достаточно abs(one - n), т.к. при одинаковых разностях он выберет первое значение коллекции, а это будет меньшее значение
    min(sorted(values), key=lambda n: abs(one - n))
    Ответ написан