map и типы информации
Хочу совершить в map сразу 2 действия, это сделать все элементы списка типом float и возвести их в степень с помощью функции, и в коде ниже все работает, но я хочу код без этой строчки float_nums = map(f, float_nums). В моей голове это выглядит так: float_nums = map(float + f, str_nums), но это собственно так не работает, может можно как-то заменить плюс символом или командой которая сработает?
# map() и типы информации
str_nums = ['1', '2', '3', '4', '5']
def f(number):
return number ** 2
float_nums = map(float, str_nums)
float_nums = map(f, float_nums)
print(list(float_nums))
Ответы (2 шт):
Автор решения: Алексей Р
→ Ссылка
Используйте лямбду
str_nums = ['1', '2', '3', '4', '5']
float_nums = list(map(lambda x: float(x) ** 2, str_nums))
print(float_nums)
[1.0, 4.0, 9.0, 16.0, 25.0]
Или обычную функцию
def f(number):
return float(number) ** 2
str_nums = ['1', '2', '3', '4', '5']
float_nums = list(map(f, str_nums))
print(float_nums)
Автор решения: CrazyElf
→ Ссылка
Можно два раза подряд применить map. Проще вроде нельзя это написать без изменения самой функции и используя только map:
float_nums = list(map(f, map(float, str_nums)))