Функция 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 шт):

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

А причем тут 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())

→ Ссылка