Python не может автоматически распаковывать лямбда-параметры. enumerate
возвращает tuple
, поэтому lambda
должен принять этот кортеж в качестве единственного аргумента
Вам нужно:
n = map(lambda t: t[1].upper() if t[0] % 2 else t[1], enumerate(alphabet))
Учитывая теперь уродливость ручной распаковки map
+ lambda
+, я бы порекомендовал альтернативное понимание генератора:
n = (value.upper() if index % 2 else value for index,value in enumerate(alphabet))
(я удалил вызов lower()
, поскольку ваш ввод уже в нижнем регистре)