Bonjour,
j'ai besoin de créer une fonction permettant la modification d'un set entrée en paramètres, néanmoins si j'arrive a créer une copie locale de ce set à l'intérieur de la fonction et à le modifier en interne de cette fonction (ce qui en soi ne me sert à rien) je n'arrive pas à modifier le set entrée en paramètre (je ne sais pas si je suis très clair), enfin si mais je ne parviens qu'as l'effacer. Y a-t-il moyen de modifier des set() au travers de fonctions ou de créer des set de portées globales ?
Voici l'appel de la fonction que j'ai réalisé et la fonction en elle même:
Code : Sélectionner tout - Visualiser dans une fenêtre à part GestionBlockEnVol(canvas, Image,CasePleine)
En sortie de fonction, CasePleine est vide mais CP contient plein d'éléments.
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 def GestionBlockEnVol(canvas, Mur, CP): #CP= Cases Pleines for J in range(len(CaseListe)): if len(CaseListe[J]) == NOMBRECASELARGEUR: for i in CaseListe[J]: canvas.delete(i) SetInter1 = set() SetInter2 = set() SetInter3 = set() SetInter3 = CP.copy() for l in CP: if l[1]== J: SetInter1.add(l) if l[1] < J: SetInter2.add((l[0],l[1]+1)) SetInter1.add(l) CP.clear() print("setInter3 ",SetInter3," SetInter1 ",SetInter1," SetInter2 ", SetInter2 ) CP = (SetInter3.difference(SetInter1)).union(SetInter2) SetInter1.clear() SetInter2.clear() SetInter3.clear() print("CP",CP)
Merci d'avance
Partager