bonjour,

je traite une liste de liste de tuple qui se transformera plus tard en liste de tuples. J'ai une fonction de traitement ci jointe qui doit me faire des modification au niveau le plus bas dans la liste.
Les modification prisent à ce niveau fonctionnent bien, mais quand je renvoie ma liste de depart (de plus haut niveau), les modification ne sont pas effectives, comme si j'avais travaillé avec une copie de liste et non pas l'originale

Quelqu'un a t-il une explication ?

voici mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
global_list=[[('N1', 'P1', 0, 'PCS1'), ('N1', 'P1', 1, 'PCS2'), ('N1', 'P1', 0, 'PCS3')], [('N2', 'P2', 0, 'PCS1'), ('N2', 'P2', 0, 'PCS2')]]
condition=(2,0, 3, '_')
def condition_traitement(global_list, condition):
	"""filtre les tuple des listes de facon à remplir les condition transmises
        Les conditions sont sous la forme d'un tuple de 4 elements
        elemt1 -> position dans le tuple de la condition à vérifier
        elemt2 -> condition à remplir
        elemt3 -> position du champs affecter par cette condition
        elemt4 -> conduite à tenir en cas ou la condition est remplie
        
        entree : global_list=liste de liste de tuple de la requete
                                condition=tuple de traitement de la condition
        
        sortie : liste avec les condition vérifiées et triees
        """
 
	#pour chaque liste de la liste
	for member_list in global_list:
	        #pour chaque tuple de la liste
		for member_tuple in member_list:
			#tranformer le tuple en liste pour pouvoir effectuer les modifs
			member_tuple=list(member_tuple)
			#si condition remplie
			if member_tuple[condition[0]]==condition[1]:
				#transformer l'element affecter par la condition
				member_tuple[condition[2]]=condition[3]
			#supprimer l'element test de condition
			del member_tuple[condition[0]]
			#tranformer la liste en tuple pour securite
			member_tuple=tuple(member_tuple)
	#retourner la liste modifiee
	return global_list