"""
    map(func, iter)

    map применяет переданную функцию func к каждому элементу последовательности
    и возвращает map объект
"""


def main():
    digits = [1, 2, 3, -1, -7, 10, -12, 4, 5]

    # например, нужно сделать список из модулей элементов списка digits

    # вариант с конструктором
    print([abs(i) for i in digits])  # [1, 2, 3, 1, 7, 10, 12, 4, 5]

    # вариант с map
    print(list(map(abs, digits)))  # [1, 2, 3, 1, 7, 10, 12, 4, 5]

    # на месте функции может быть lambda выражение
    # применим функцию которая возведет в квадрат положительные числа,
    # а отрицательные вернет по модулю
    print(list(map(lambda x: x ** 2 if x > 0 else abs(x), digits)))

    # аналогичное решение с конструктором
    print([i ** 2 if i > 0 else abs(i) for i in digits])

    # вычислить сумму чисел, введенных через пробел с клавиатуры
    print(sum(map(int, input("Введите числа через пробел: ").split())))


if __name__ == "__main__":
    main()
