Что выведет этот код?


a = [1, 2, 3]
b = [4, 5, 6]
result = list(map(lambda x, y: x + y, a, b))
print(result)

Код складывает элементы списков a и b поэлементно, используя функцию map и анонимную функцию (lambda).

Результатом будет список [5, 7, 9].


Данный код на Python использует функцию map() для сложения элементов двух списков, a и b, поэлементно.

Разберем код по шагам:

  1. a = [1, 2, 3]: Определяется список a, содержащий числа 1, 2 и 3.
  2. b = [4, 5, 6]: Определяется список b, содержащий числа 4, 5 и 6.
  3. result = list(map(lambda x, y: x + y, a, b)): Это ключевая строка. Она делает следующее:
    • map(lambda x, y: x + y, a, b): Функция map() применяет анонимную функцию (лямбда-функцию) к каждому элементу из списков a и b.
    • lambda x, y: x + y: Это анонимная функция, которая принимает два аргумента (x и y) и возвращает их сумму.
    • a, b: map() берет первый элемент из a (1) и первый элемент из b (4), передает их в лямбда-функцию. Затем второй элемент из a (2) и второй элемент из b (5), и так далее. Важно, чтобы списки были одной длины или map остановится, как только закончится более короткий список.
    • list(...): Функция map() возвращает итератор. Чтобы получить список результатов, мы преобразуем итератор в список с помощью list().
  4. print(result): Выводит список result в консоль.

Результат выполнения кода:

Код выведет в консоль список [5, 7, 9], так как каждый элемент списка a был сложен с соответствующим элементом списка b: 1+4=5, 2+5=7, 3+6=9.

Альтернативные способы решения:

Вместо использования map и лямбда-функции, можно использовать list comprehension для достижения того же результата, что может быть более читаемым:


a = [1, 2, 3]
b = [4, 5, 6]
result = [x + y for x, y in zip(a, b)]
print(result)

Здесь zip(a, b) создает итератор, возвращающий кортежи из соответствующих элементов списков a и b, а list comprehension создает новый список, содержащий суммы этих элементов.

0