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
Libérer: 2024-10-21 12:02:33
original
851 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal