Bonjour,

j'ai un canvas composé de rectangles contenant chacun une valeur booléenne (ici VRAI ou FAUX).

exemple :

VRAI - FAUX - VRAI - FAUX
VRAI - FAUX - VRAI - FAUX
VRAI - FAUX - VRAI - FAUX
FAUX - FAUX - VRAI - FAUX
Je voudrai récupérer les valeurs des lignes ou des colonnes sous forme de listes.

exemple par ligne :

[[VRAI, FAUX, VRAI, FAUX], [VRAI, FAUX, VRAI, FAUX],[VRAI, FAUX, VRAI, FAUX],[FAUX, FAUX, VRAI, FAUX]]
exemple par colonne :

[[VRAI, VRAI, VRAI, FAUX], [FAUX, FAUX, FAUX, FAUX],[VRAI, VRAI, VRAI, VRAI],[FAUX, FAUX, FAUX, FAUX]]
J'ai donc écrit le code suivant :

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
def Listage(evt) :
   listeMatrice[:]=[]
   listeMatrice2=[]
   myLenght = int(len(items2))
   for x in range(0,myLenght):
     #listeMatrice.append(listeMatrice2)
     listeMatrice2[:]=[]
     for y in range(0,myLenght):
       myT = can.itemcget(items2[x][y],'text')
       print(" x = "+str(x)+" et y = "+str(y)+" = "+str(myT))
       myT2 = " x = "+str(x)+" et y = "+str(y)+" = "+str(myT)
       listeMatrice2.append(myT2)
       if y==myLenght-1:
          listeMatrice.append(listeMatrice2)
 
   print(listeMatrice)

et j'obtiens le résultat suivant :

x = 0 et y = 0 = VRAI
x = 0 et y = 1 = FAUX
x = 0 et y = 2 = VRAI
x = 0 et y = 3 = FAUX
x = 1 et y = 0 = VRAI
x = 1 et y = 1 = FAUX
x = 1 et y = 2 = VRAI
x = 1 et y = 3 = FAUX
x = 2 et y = 0 = VRAI
x = 2 et y = 1 = FAUX
x = 2 et y = 2 = VRAI
x = 2 et y = 3 = FAUX
x = 3 et y = 0 = FAUX
x = 3 et y = 1 = FAUX
x = 3 et y = 2 = VRAI
x = 3 et y = 3 = FAUX



[[' x = 3 et y = 0 = FAUX', ' x = 3 et y = 1 = FAUX', ' x = 3 et y = 2 = VRAI', ' x = 3 et y = 3 = FAUX'], [' x = 3 et y = 0 = FAUX', ' x = 3 et y = 1 = FAUX', ' x = 3 et y = 2 = VRAI', ' x = 3 et y = 3 = FAUX'], [' x = 3 et y = 0 = FAUX', ' x = 3 et y = 1 = FAUX', ' x = 3 et y = 2 = VRAI', ' x = 3 et y = 3 = FAUX'], [' x = 3 et y = 0 = FAUX', ' x = 3 et y = 1 = FAUX', ' x = 3 et y = 2 = VRAI', ' x = 3 et y = 3 = FAUX']]

la 1ère ligne donne :

[FAUX, FAUX, VRAI, FAUX]
Pourriez-vous me dire, svp, comment faire pour avoir le bon résultat qui est :

[VRAI, FAUX, VRAI, FAUX]
Merci de votre aide,
Cordialement,
Arsène