Je suis en train d'écrire une fonction pour faire pousser un arbre:Passing modifié la liste à chaque noeud d'arbre binaire
def collect_append(collect,split):
collect.append(split)
return collect
def tree(string,passwords,collect): #collect is a list and passwords is also a list
matching_list = []
match = 0
if len(string)==0:
print(collect)
return 0
for j in passwords:
for i in range(min(len(j),len(string))):
if string[i]!=j[i]:
break
else :
matching_list.append(j)
match = match + 1
if match == 0:
return 1
else:
for split in matching_list:
x =tree(string.strip(split),passwords,collect_append(collect,split))
return x
Ma question est, pour chaque scission matching_list (par exemple deux), je veux ajouter différentes chaînes à la liste existante à ce moment-là (ie je veux deux versions de liste).
Dans ce cas, la fonction collect_append
que j'utilise modifie la liste lors de la première itération de la boucle for
et l'utilise de la même manière pour d'autres itérations. Ce que je veux, c'est juste modifier la liste collect
juste pour le paramètre et sans le changer de façon permanente. Y a-t-il un moyen de faire cela?
Bienvenue dans StackOverflow. Veuillez lire et suivre les consignes de publication dans la documentation d'aide. [Exemple minimal, complet, vérifiable] (http://stackoverflow.com/help/mcve) s'applique ici. Nous ne pouvons pas vous aider efficacement tant que vous n'afficherez pas votre code MCVE et que vous ne décrivez pas précisément le problème. Nous devrions pouvoir coller votre code posté dans un fichier texte et reproduire le problème que vous avez décrit. – Prune