Menu
Coddy logo textTech

Функция map

Часть раздела Logic & Flow путешествия по Python на Coddy — урок 72 из 78.

Функция map() принимает две основные вещи:

  1. Функцию (которая содержит инструкции о том, что нужно сделать)
  2. Последовательность элементов (например, список или любую коллекцию элементов)

Затем она применяет эту функцию к каждому элементу вашей последовательности, один за другим, и возвращает вам все результаты.

Например:

def square(n):
    return n * n

numbers = [1, 2, 3, 4, 5]  # Это просто список чисел
squared_numbers = map(square, numbers)
print(list(squared_numbers))
# Вывод: [1, 4, 9, 16, 25]

Что здесь произошло:

  • У нас есть список чисел: [1, 2, 3, 4, 5]
  • Функция map() берет каждое число по очереди
  • Она пропускает каждое число через нашу функцию square
  • Она собирает все результаты по порядку

Вы можете представить это как конвейер:

  1. Число 1 поступает на вход → функция square превращает его в 1
  2. Число 2 поступает на вход → функция square превращает его в 4
  3. Число 3 поступает на вход → функция square превращает его в 9 И так далее...

Вы также можете использовать лямбда-функцию вместо определения отдельной функции:

numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda n: n * n, numbers)
print(list(squared_numbers))
# Вывод: [1, 4, 9, 16, 25]

Функция map() работает с любой коллекцией элементов — не только с числами. Это могут быть строки или любой другой тип данных, который вы хотите обработать таким же образом.

challenge icon

Задание

Легко

Создайте функцию с именем convert_to_uppercase, которая принимает список строк strings в качестве аргумента. Функция должна использовать функцию map() совместно с lambda-функцией для преобразования каждой строки в списке в верхний регистр. Функция должна возвращать список, содержащий строки в верхнем регистре.

Шпаргалка

Функция map() применяет функцию к каждому элементу последовательности и возвращает результаты:

def square(n):
    return n * n

numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)
print(list(squared_numbers))
# Вывод: [1, 4, 9, 16, 25]

Вы также можете использовать лямбда-функции с map():

numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda n: n * n, numbers)
print(list(squared_numbers))
# Вывод: [1, 4, 9, 16, 25]

Функция map() работает с любым типом данных, а не только с числами.

Попробуйте сами

def convert_to_uppercase(strings):
    # Используйте map() с лямбда-функцией для преобразования строк в верхний регистр
    uppercase_strings = 
    
    # Вернуть список строк в верхнем регистре
    return list(uppercase_strings)
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Logic & Flow