Maison >développement back-end >Tutoriel Python >Comment calculer la somme des entiers d'une liste en utilisant la récursion en Python ?

Comment calculer la somme des entiers d'une liste en utilisant la récursion en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-21 12:02:33778parcourir

How to Calculate Sum of List Integers Using Recursion in Python?

Comprendre la récursion en Python : résumer des nombres entiers de liste

La récursion est une technique de programmation dans laquelle une fonction s'appelle à plusieurs reprises pour résoudre des instances plus petites d'un problème. jusqu'à ce qu'une condition de base soit atteinte. En Python, nous pouvons appliquer la récursivité à diverses tâches, notamment le calcul de sommes de listes entières.

Fonction récursive : listSum

Pour définir une fonction récursive listSum qui prend une liste d'entiers et renvoie leur somme, on peut décomposer le problème ainsi :

  • Condition de base : Si la liste est vide (list == []), la somme est 0.
  • Étape récursive : Si la liste n'est pas vide, la somme est le premier élément (liste[0]) plus la somme des éléments restants (listSum(list[1 : ])).

Version simple :

<code class="python">def listSum(ls):
    # Base condition
    if not ls:
        return 0

    # First element + result of calling `listsum` with rest of the elements
    return ls[0] + listSum(ls[1:])</code>

Récursion des appels de queue :

Pour améliorer l'efficacité , on peut passer la somme actuelle au paramètre de la fonction :

<code class="python">def listSum(ls, result):
    # Base condition
    if not ls:
        return result

    # Call with next index and add the current element to result
    return listSum(ls[1:], result + ls[0])</code>

Passing Around Index Version :

Pour éviter de créer des listes intermédiaires, on peut passer l'index de l'élément actuel :

<code class="python">def listSum(ls, index, result):
    # Base condition
    if index == len(ls):
        return result

    # Call with next index and add the current element to result
    return listSum(ls, index + 1, result + ls[index])</code>

Version de la fonction interne :

Pour simplifier le code, nous pouvons définir une fonction interne récursive :

<code class="python">def listSum(ls):

    def recursion(index, result):
        # Base condition
        if index == len(ls):
            return result

        # Call with next index and add the current element to result
        return recursion(index + 1, result + ls[index])

    return recursion(0, 0)</code>

Version des paramètres par défaut :

En utilisant les paramètres par défaut, nous pouvons simplifier davantage :

<code class="python">def listSum(ls, index=0, result=0):
    # Base condition
    if index == len(ls):
        return result

    # Call with next index and add the current element to result
    return listSum(ls, index + 1, result + ls[index])</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn