Как что-то засунуть в map?

Подскажите. Есть код

print(reduce(lambda x, y: x*y**5, map(int, input().split())))

Он возвращает произведение всех элементов в 5ой степени. Но, проблема появилась вполне очевидная, если первый элемент НЕ 1, то считается криво. Соответственно, костыль наше все. Как добавить 1 первым элементом в map?

введите сюда описание изображения

Результат: введите сюда описание изображения


Ответы (3 шт):

Автор решения: MaxU

UPDATE: в данном случае советую воспользоваться соседним решением


Если же у вас будет более сложный случай, то можно "разнести" операции по разным lambda функциям:

In [20]: reduce(lambda x, y: x*y, map(lambda x: int(x)**5, input().split()))
1 1 1 2
Out[20]: 32

In [21]: reduce(lambda x, y: x*y, map(lambda x: int(x)**5, input().split()))
2 1 1 2 2
Out[21]: 32768

In [22]: reduce(lambda x, y: x*y, map(lambda x: int(x)**5, input().split()))
10 100 1000 10000 2
Out[22]: 3200000000000000000000000000000000000000000000000000

как добавить что-то на первое и последнее место в map'e?

In [28]: reduce(lambda x, y: x*y**5, [1] + list(map(int, input().split())))
2 3
Out[28]: 7776

In [29]: reduce(lambda x, y: x*y**5, [1] + list(map(int, input().split())))
1 2 3
→ Ссылка
Автор решения: Serzhev

Немного не по теме. Если нужно произведение элементов возвести в степень, то должно быть по-другому:

2*3**2 # как записано у вас, т.е. 3-ка возводится в степень 2-а, а затем домножается на 2-ку
# 18

(2*3)**2 # произведение возводится в степень, 2-ка перемножается на 3-ку и возводится во 2-ю степень
# 36
→ Ссылка
Автор решения: Xander

Вот в соседних комментариях умные люди, но это как раз тот случай, когда знание стандартной библиотеки важнее ума.

В map вам не нужно ничего засовывать, потому что у reduce можно просто третьим аргументом указать значение, которое нужно использовать в качестве первого элемента.

print(reduce(lambda x, y: x*y**5, map(int, input().split()), 1))
                                              # Вот так вот ^^^

Кстати, если указывать этот третий аргумент, то reduce сможет корретно обрабатывать случаи, когда входная последовательность оказалась пустой. Поэтому указание этого аргумента во многих случаях позволяет обойтись без предварительных проверок на длину последовательности или конструкций try ... except

→ Ссылка