Dans une fonction que je fais, j'ai un Par exemple, à Je veux pouvoir regarder chaque élément (chacun A et B), par exemple avec x = 1 faire: p> mais Cela m'est difficile de comprendre car à chaque valeur X, je devrais modifier le nombre de déclarations. Existe-t-il un moyen de modifier le nombre de déclarations pour ma liste sur la base de la modification du numéro X, puisque x est proportionnelle linéairement au nombre de déclarations dont j'ai besoin? P> P> pour x dans la plage (y) code> la boucle qui créera une liste avec
x code> de la profondeur de la liste.
x = 1 code>, il créera
[[[A, B], [A, B]] code>
et à
x = 2 code>, il créera
[[[[[[[[[[A], [A, B]], [[A, B], [A, B]]] code> p>
3 Réponses :
Vous pouvez utiliser une seule expression d'argumentation en cours d'appel à appeler et survolez votre iTHEREFER:
def wrap_iter(x): return [x] # then a function to recursively call f def nums(f, x, rep): while rep: x = f(x) rep-=1 return x a = [[1,2], [1,2]] nums(wrap_iter, a, 1) [[[1, 2], [1, 2]]] nums(wrap_iter, a, 0) [[1, 2], [1, 2]]
Y a-t-il un moyen de modifier le nombre de déclarations ... p>
non. Au lieu de cela, vous devez créer une fonction récursive, c'est-à-dire une fonction qui s'appelle à nouveau pour un problème plus faible jusqu'à ce qu'il frappe une sorte de "cas de base". P>
Vous semblez rechercher une sorte de
Traversal de l'arbre fonction; quelque chose comme ceci: p> xxx pré> blockquote>
comme alternative à une fonction récursive, vous pouvez également traverser la structure de garder votre propre pile:
Utilisez une fonction récursive. Fondamentalement, vous recherchez Traversal d'arbre
Veuillez ajouter une entrée et une sortie souhaitées (pas en mots mais avec des données réelles). Votre question est confuse et ce sera beaucoup plus facile d'aider si vous nous montrez ce que vous voulez.