Алгоритмы

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

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

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

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

  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

Сборка мусора в Python: ключевые концепции и механизмы

Управление памятью - важный, но часто упускаемый из виду аспект программирования. При неправильном подходе оно…

6 дней ago

Круговой импорт в Python и как его избежать

Как возникает круговой импорт? Эта ошибка импорта обычно возникает, когда два или более модуля, зависящих…

2 недели ago

Библиотека tqdm: визуализация прогресса выполнения скриптов Python

Вы когда-нибудь оказывались в ситуации, когда скрипт на Python выполняется очень долго и вы задаетесь…

3 недели ago

Символы новой строки в Python

В этом руководстве мы разберем все, что нужно знать о символах перехода на новую строку…

2 месяца ago

if __name__ == «__main__» в Python: полное объяснение

Блок if __name__ == "__main__" в Python позволяет определить код, который будет выполняться только при…

2 месяца ago

Как писать модульные тесты для методов экземпляра в Python

Давайте разберем, как настроить модульные тесты для экземпляров классов. Мы напишем тесты для проверки функциональности…

4 месяца ago