Fonction qui modifie la variable globale
Résolu
Ségolène
-
Ségolène -
Ségolène -
Bonjour,
Je voudrais créer une fonction qui travaille sur une liste sans modifier la liste de départ, mais la liste de départ se retrouve modifiée quand même.
En recréant mon problème sur un exemple simple, je fais :
Si j'applique mafonction à test, j'obtiens
- en sortie de mafonction(test) : [[1,2,0],[3,4,0],[6,7,0],[8,9,0],[10,11,0]], ce qui est bien ce que je veux
- en revanche, ma liste de départ est modifiée : le plus curieux, c'est que c'est seulement la première partie de la boucle (ajouter des zéros) qui est appliquée sur la variable de départ, la seconde partie n'est bien appliquée qu'à l'intérieur de la fonction :
test = [[1,2,0],[3,4,0],[5,0,0],[6,7,0],[8,9,0],[10,11,0]]
Avre-vous déjà rencontré ce problème et existe-t-il une solution ?
Merci d'avance
Je voudrais créer une fonction qui travaille sur une liste sans modifier la liste de départ, mais la liste de départ se retrouve modifiée quand même.
En recréant mon problème sur un exemple simple, je fais :
test=[[1,2],[3,4],[5,0],[6,7],[8,9],[10,11]]
def mafonction(liste):
l=liste[:]
for i in l:
i.append(0)
if i[1]==0:
l.remove(i)
return(l)
Si j'applique mafonction à test, j'obtiens
- en sortie de mafonction(test) : [[1,2,0],[3,4,0],[6,7,0],[8,9,0],[10,11,0]], ce qui est bien ce que je veux
- en revanche, ma liste de départ est modifiée : le plus curieux, c'est que c'est seulement la première partie de la boucle (ajouter des zéros) qui est appliquée sur la variable de départ, la seconde partie n'est bien appliquée qu'à l'intérieur de la fonction :
test = [[1,2,0],[3,4,0],[5,0,0],[6,7,0],[8,9,0],[10,11,0]]
Avre-vous déjà rencontré ce problème et existe-t-il une solution ?
Merci d'avance
A voir également:
- Fonction qui modifie la variable globale
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide