[Python] Comprendre comment utiliser les fonctions récursives

[Python] Comprendre comment utiliser les fonctions récursives

Les fonctions récursives peuvent être utilisées lorsque la profondeur de la structure imbriquée n'est pas fixe. (Lors du traitement des données de fichier JSON, etc.)

Qu'est-ce qu'une fonction récursive?

S'appeler (fonction) dans une fonction. └ Littéralement "récursif", revenez à vous-même.

Remarques sur les fonctions récursives

--Une condition de résiliation est requise.

Illustration

Trouvez la somme jusqu'à l'entier spécifié.

python


def sum(n):
    #Conditions de sortie
    if n <= 0:
        return n
    
    #Appelez-vous(Fonction récursive)
    return n + sum(n-1)

Si n = 4, additionnez les nombres 4,3,2,1 dans l'ordre.

Résultat d'exécution de la fonction


sum(4)

#production
10

Traitement du contenu

Si vous entrez un entier supérieur ou égal à 0

(1) La première chose à exécuter est n + sum (n-1) (2) Après avoir entré une valeur numérique dans n, exécutez sum (n-1). └ L'argument devient "n-1". (3) Si n-1 est supérieur à 0, répéter «n + somme (n-1)».

Extrayez des entiers d'un tableau multidimensionnel.

Les données peuvent être obtenues à partir d'un tableau multidimensionnel en combinant une instruction if, une instruction for et une fonction récursive.

python


data0 = [1,[2]]

def number(arr):
    #Préparez une liste pour mettre le résultat
    result=[]
    
    #Ajouter au résultat s'il s'agit d'un entier
    if isinstance(arr, int):
        result.append(arr)
    
    #Traitement pour le type de liste
    if isinstance(arr, list):
        for brr in arr:
            #Fonction récursive. Résultat d'exécution(result)Ajouter
            result += number(brr)
    
    #Valeur de retour de la fonction
    return result

number(data0)    

#production
[1, 2]

Définissez une valeur de retour. * Faites attention à l'emplacement


▼ Puisqu'il n'y a pas de profondeur spécifiée, vous pouvez aller dans n'importe quel nombre de dimensions. * La valeur par défaut est jusqu'à 1000 fois

python


data1 = [1,[2],[[3]],[[[[4]]]],[[[[5,6,7],8,9]]],10]

def number(arr):
    result=[]
    
    if isinstance(arr, int):
        result.append(arr)
    
    if isinstance(arr, list):
        for brr in arr:
            result += number(brr)
 
    return result

number(data1) 

#production
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]       

Recommended Posts

[Python] Comprendre comment utiliser les fonctions récursives
python3: Comment utiliser la bouteille (2)
Comprendre comment utiliser django-filter
[Python] Comment utiliser la liste 1
Python: comment utiliser pydub
[Python] Comment utiliser checkio
[Python] Comment utiliser input ()
Comment utiliser Python lambda
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Comment utiliser les octets Python
Python: comment utiliser async avec
[Python] Comment utiliser la série Pandas
Comment utiliser Mysql avec python
Comment utiliser l'API Python d'OpenPose
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Comment utiliser la fonction zip de python
[Python] Comment utiliser l'API Typetalk
[Python] Résumé de l'utilisation des fonctions de fractionnement et de jointure
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
[Python] Résumé de l'utilisation des pandas
[Introduction à Python] Comment utiliser la classe en Python?
Comment installer et utiliser pandas_datareader [Python]
[python] Comment utiliser __command__, explication des fonctions
[Python] Comment utiliser import sys sys.argv
Mémorandum sur l'utilisation du python gremlin
[Python2.7] Résumé de l'utilisation d'unittest
python: Comment utiliser les locals () et globals ()
Comment utiliser __slots__ dans la classe Python
Comment utiliser "deque" pour les données Python
Comment utiliser le zip Python et énumérer
Résumé de l'utilisation de la liste Python
Comment utiliser les expressions régulières en Python
[Python2.7] Résumé de l'utilisation du sous-processus
Comment utiliser is et == en Python
[Question] Comment utiliser plot_surface de python
Comment utiliser les fonctions dans des fichiers séparés version Perl et version Python
Grammaire de base du système Python3 (comment utiliser les fonctions, la fermeture, la fonction lambda)
Comment utiliser xml.etree.ElementTree
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Comment utiliser virtualenv
Comment utiliser Seaboan
Comment utiliser la correspondance d'image
Comment installer Python
Comment utiliser Pandas 2
Comment utiliser Virtualenv
Comment utiliser pytest_report_header
Comment installer python
Comment utiliser Bio.Phylo
Comment utiliser SymPy
Comment utiliser x-means
Comment utiliser WikiExtractor.py
Comment utiliser IPython
Comment utiliser virtualenv
Comment utiliser Matplotlib
Comment utiliser iptables