Алгоритмы

Рекурсивное нахождение суммы элементов списка, в который входят другие списки

Описание задачи

Программа принимает на вход список со вложенными списками и находит сумму элементов всех вложенных списков при помощи рекурсии.

Решение задачи

  1. Инициализируем переменную списком, в котором содержатся вложенные списки.
  2. Передаем этот список в качестве аргумента в рекурсивную функцию для вычисления суммы всех элементов.
  3. В теле этой функции используем одновременно цикл и рекурсию, для того чтобы достать все элементы из вложенных списков и сложить их друг с другом.
  4. На выходе функции выдается сумма всех элементов всех вложенных списков. Причем вложенных списков может быть сколько угодно.
  5. Выводим этот результат на экран.
  6. Конец.

Исходный код

Ниже дан исходный код, который осуществляет нахождение суммы всех элементов списка со вложенными списками при помощи рекурсии. Результаты работы программы также даны ниже.

def sum1(lst):
    total = 0
    for element in lst:
        if (type(element) == type([])):
            total = total + sum1(element)
        else:
            total = total + element
    return total
print("Сумма элементов равна:", sum1([[1, 2], [3, 4]]))

Объяснение работы программы

  1. Инициализируем переменную списком, в котором содержатся вложенные списки.
  2. Передаем этот список в качестве аргумента в рекурсивную функцию sum1() для вычисления суммы всех элементов.
  3. В теле этой функции создаем переменную total, в которой будем суммировать элементы списков.
  4. Далее используем цикл for и рекурсию одновременно — для того, чтобы достать все элементы из вложенных списков и сложить их друг с другом.
  5. На выходе функции выдается сумма всех элементов всех вложенных списков. Причем вложенных списков может быть сколько угодно.
  6. Выводим этот результат на экран.

Результаты работы программы

Пример 1:
Сумма элементов равна: 10
Ilyaragalin

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago