Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Nearest Value by Wojtek_Okularczyk
def nearest_value(values: set, one: int) -> int:
try:
low_one = max(i for i in values if i <= one)
except:
return min(values)
try:
big_one = min(i for i in values if i >= one)
except:
return max(values)
big_result = abs(big_one - one)
low_result = abs(low_one - one)
value = big_one if big_result < low_result else low_one
return value
if __name__ == '__main__':
print("Example:")
print(nearest_value({4, 7, 10, 11, 12, 17}, 9))
# These "asserts" are used for self-checking and not for an auto-testing
assert nearest_value({4, 7, 10, 11, 12, 17}, 9) == 10
assert nearest_value({4, 7, 10, 11, 12, 17}, 8) == 7
assert nearest_value({4, 8, 10, 11, 12, 17}, 9) == 8
assert nearest_value({4, 9, 10, 11, 12, 17}, 9) == 9
assert nearest_value({4, 7, 10, 11, 12, 17}, 0) == 4
assert nearest_value({4, 7, 10, 11, 12, 17}, 100) == 17
assert nearest_value({5, 10, 8, 12, 89, 100}, 7) == 8
assert nearest_value({-1, 2, 3}, 0) == -1
print("Coding complete? Click 'Check' to earn cool rewards!")
May 27, 2021