numbers = [3, 5, 2, 4, 7, 1]
print(numbers)

# Minimum
min_value, *rest = numbers
for num in rest:
    if num < min_value:
        min_value = num

print(min_value)


# Maximum
max_value, *rest = numbers
for num in rest:
    if num > max_value:
        max_value = num

print(max_value)


from functools import reduce


# Minimum
def my_min_func(a, b):
    return a if a < b else b


# Maximum
def my_max_func(a, b):
    return a if a > b else b


print(reduce(my_min_func, numbers))


print(reduce(my_max_func, numbers))


# Minimum
print(reduce(lambda a, b: a if a < b else b, numbers))


# Maximum
print(reduce(lambda a, b: a if a > b else b, numbers))


min(numbers)


max(numbers)
