Maison >développement back-end >Tutoriel Python >Comment calculer la somme des entiers d'une liste en utilisant la récursion en 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 :
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!