J'ai donc reçu cette fonction et maintenant je veux faire une autre fonction qui utilise aux code>, il est facile de comprendre. Quelle fonction cette fonction
est-ce que bon nombre de chiffres sont supérieurs au premier élément d'un
liste. AUX code> récursivement pour
chaque élément de la liste et voir qui renvoie le plus grand nombre. Mais je
Je ne vois pas comment puis-je faire cela de manière récursive. p> p>
3 Réponses :
Cela a fonctionné pour moi:
Lorsque vous appelez la fonction, quel est votre "I"?
Donc, quand je définis à l'origine la fonction avec def aux (...) code> L'un des arguments est i code> - il s'agit de l'élément numéro dans list1 code> . Sur la ligne que j'ai commenté Récursion arrive ici Code> Je sais que i code> à nouveau que j'ajoute 1 à cela. Par conséquent, la fonction s'appelle elle-même mais avec un i code> i >.
Je sais que ce n'est pas une partie de la question, mais je réécrireais la fonction comme ceci: examinons quelques exemples de récursivité pour faciliter la tâche. P> < p> somme de la liste: p> à l'aide d'une boucle, vous pouvez résoudre le problème facilement: p> si votre Tâche est de trouver le nombre maximum d'une liste de nombres positifs, il peut être exprimé de manière récursive comme ceci: p> par exemple: p> Maintenant, vous pouvez modifier la fonction pour ne pas trouver la valeur maximale, mais le résultat maximal de la fonction d'une valeur. p> Vous pouvez réécrire la fonction à Utilisez récursion queue em>: p> En savoir plus sur la récursion: p> https://realpython.com/python-thinking-recursivement/ \ ' p>
Maintenant, je veux faire une autre fonction qui utilise Aux récursivement pour chaque élément de la liste et voir qui retourne le plus grand nombre. p>
Je comprends que vous pouvez être chargé de résoudre celui-ci de manière spécifiquement récursive, mais je ne vois pas le besoin. L'élément de votre liste qui retournera le plus grand nombre en utilisant la logique de votre fonction n'est que le nombre le plus bas. Ceci peut être trouvé avec la fonction
min () code>. Vous pouvez ensuite renvoyer la longueur de votre liste moins une (si vous n'assumez aucun doublure) ou la longueur de votre liste moins la longueur d'une autre liste qui inclut vos articles les plus bas (doit-il y avoir des doublons.) P># Assums no duplicates def something(l): return (min(l), len(l)-1) # Accounts for duplicates def betterthing(l): low = min(l) return (low, len(l) - len([x for x in l if x == low])) l1 = [5,2,7,4,3,8] print("{} is lowest & {} other items are larger.".format(*something(l1))) l2 = [5,2,7,4,3,8,2,9,10,8] print("{} is lowest & {} other items are larger.".format(*betterthing(l2)))
Voulez-vous dire «utiliser la récursion» par récursif i>? Pourquoi voulez-vous faire cela récursivement? Est-ce une partie de la tâche?
Oui, ça fait partie de la tâche
Quelle est la tâche? Le programme ne compte pas combien de chiffres sont supérieurs à ceux du premier, et cela ne compte pas combien de chiffres sont> = que le premier.
Quel est votre résultat attendu?
Dans cet exemple, mon résultat attendu est 3, car il y a 2 autres numéros supérieurs à 5, 7 et 8. Donc, Res démarrez-le sur 1 parce que nous comptons le nombre 5 aussi, 1 + 2 = 3
Mais 5 n'est pas supérieur à 5.
Cela peut aider à ajouter un pseudocode pour montrer ce que vous essayez d'atteindre. Je ne suis pas clair sur quel résultat que vous essayez d'atteindre. Regardez également
iTertools code>, votre fonctionAUX code> peut être réduite à quelques lignes à l'aide de ces fonctions.