Функция map написанная через def. Работа со списками имен
С помощью функции map через функцию def нужно вывести список имен с заглавной буквы.
Например на входе список имен:
names = ['дима', 'саша', 'костя', 'тимур']
Ожидаемый результат: ['Дима', 'Саша', 'Костя', 'Тимур']
Мой код:
names = ["дима", "саша", "костя", "тимур"]
def up_1():
names_2 = []
for i in names_2:
return map(list(names.title()))
print(up_1())
Результат: None
Можно еще через lambda, но мне этот способ не подходит!
names = ["дима", "саша", "костя", "тимур"]
names_2 = list(map(lambda x:x.title(),names))
print(names_2)
#['Дима', 'Саша', 'Костя', 'Тимур']
Ответы (2 шт):
А причем тут map?
names = ["дима", "саша", "костя", "тимур"]
def up_1(names):
names_2 = []
for item in names:
names_2.append(item.title())
return names_2
print(up_1(names))
Результат:
['Дима', 'Саша', 'Костя', 'Тимур']
P.S. Кстати, выражение "Функция.... написанная через def" - это круто! Предполагаю, что вас просто попросили написать функцию, которая будет работать аналогично функции map. Вот это я вам и показал.
Ниже код с правильным использовнием map для задачи в вашей формулировке.
Обратите внимание, что для прямого вывода через print, как вы хотите, возвращать нужно список, а не объект итератора из map. Ну, и используется map по-другому, не так как у вас в коде - см. примеры в документации.
https://docs-python.ru/tutorial/vstroennye-funktsii-interpretatora-python/funktsija-map/
names = ["дима", "саша", "костя", "тимур"]
def up_1():
return list(map(str.title, names))
print(up_1())