Python : Soucis d'affectation de variables

Je souhaite réaliser une boucle sur les 3 champs de BT0 ou BT1 ou BT2
sachant que le 0,1 ou 2 (de chaque BT) est une variable par exemple i, donc BT[i].
Cette dernière syntaxe ne fonctionne pas. Je n’arrive pas à construire une variable composée de BT et de i
Une fois ce point réglé, je souhaite réaliser une deuxième boucle sur le contenu
de LGx, CLx et GRx en fonction du BT[i] sélectionné.

J’ai tenté plusieurs approches, mais sans succès.

Merci de votre aide

BT0 = [LG1, CL1, GR1]
BT1 = [LG1, CL2, GR1]
BT2 = [LG1, CL3, GR1]

LG1=[0,1,2,3,4,5,6,7,8]
CL1=[0,9,18,27,36,45,54,63,72]
CL2=[1,10,19,28,37,46,55,64,73]
CL3=[2,11,20,29,38,47,56,65,74]
GR1=[0,1,2,9,10,11,18,19,20]

Pour ta première boucle, « choisir le BT en fonction de i » c’est alambiqué de le faire en créant trois variables « BT1, BT2, BT3 » (même si j’entends que ça peut paraître naturel).

Il y a plusieurs approches en Python pour faire ça, je t’en donne deux comme exemples, soit faire une liste nommées BT contenant 3 éléments, et donc accessibles via BT[0], BT[1], et BT[2], soit en faire un dictionnaire pour faire correspondre les clés 0, 1, et 2 à tes trois valeurs.

Je n’ai aucune idée des données que tu manipules (côté sémantique), je vais parier que la liste s’y prête mieux :

LG1=[0,1,2,3,4,5,6,7,8]
CL1=[0,9,18,27,36,45,54,63,72]
CL2=[1,10,19,28,37,46,55,64,73]
CL3=[2,11,20,29,38,47,56,65,74]
GR1=[0,1,2,9,10,11,18,19,20]

BT = [
    [LG1, CL1, GR1],
    [LG1, CL2, GR1],
    [LG1, CL3, GR1]
]

for i in range(3):
    print(BT[i])

# Ce for peut se réecrire d'une manière plus pythonique :

for machin in BT:  # Je le nomme "machin" car je n'ai aucune idée de ce que c'est.
    print(machin)

à l’execution ça donne :

[[0, 1, 2, 3, 4, 5, 6, 7, 8], [0, 9, 18, 27, 36, 45, 54, 63, 72], [0, 1, 2, 9, 10, 11, 18, 19, 20]]
[[0, 1, 2, 3, 4, 5, 6, 7, 8], [1, 10, 19, 28, 37, 46, 55, 64, 73], [0, 1, 2, 9, 10, 11, 18, 19, 20]]
[[0, 1, 2, 3, 4, 5, 6, 7, 8], [2, 11, 20, 29, 38, 47, 56, 65, 74], [0, 1, 2, 9, 10, 11, 18, 19, 20]]

Merci pour ton retour rapide
J’ai fait une première boucle comme conseillé en rajoutant if i == BTJ pour isoler la ligne de BT qui m’intéresse en fonction de la valeur de BTJ BTJ=0

BT = [
  [LG1, CL1, GR1],
  [LG1, CL2, GR1],
  [LG1, CL3, GR1]
     ]

for i in range(3):
  if i == BTJ:
   print(BT[i])
   break

j’obtiens : [[0, 1, 2, 3, 4, 5, 6, 7, 8], [0, 9, 18, 27, 36, 45, 54, 63, 72], [0, 1, 2, 9, 10, 11, 18, 19, 20]] ce qui est une bonne chose.
Pour la deuxième boucle je souhaiterais obtenir chaque occurrence de BT[i] sous la forme

0
1
2
3
...
19
20

merci de ton aide

En réalisant quelques essais j’ai trouvé une solution à mon besoin
BTJ=2

BT = [
  [LG1, CL1, GR1],
  [LG1, CL2, GR1],
  [LG1, CL3, GR1]
     ]

for i in range(3):
  if i == BTJ:
   break

for element in BT[i]:
  for j in (element):
   print(j)

Merci de m’avoir mis sur la voie :

Ça me semble simplifiable en :

BT = [
  [LG1, CL1, GR1],
  [LG1, CL2, GR1],
  [LG1, CL3, GR1]
     ]

for element in BT[BTJ]:
  for j in (element):
   print(j)

Effectivement Super ! Merci