Partage
  • Partager sur Facebook
  • Partager sur Twitter

Renommer une liste en python

Sujet résolu
    24 octobre 2016 à 20:45:15

            nb1 = int(nbreMultiplications/3)
            nb2 = nb1
            nb3 = nbreMultiplications - nb1 - nb2
            premGR = "groupe" + liste3groupes[0]
            deuxGR = "groupe" + liste3groupes[1]
            troisGR = "groupe" + liste3groupes[2]
    
            # Premier groupe de travail
            for i in range(0,nb1):
                unNombre = random.randint(0,len(premGR)-1)
                question = "{} x {} = ? ".format(premGR[unNombre][0][0], premGR[unNombre][0][1])

    Je suis bien persuadé que je fais une énorme bêtise, mais en gros, ce qui pose problème dans mon code , c'est premGR. J'ai défini 4 listes nommées groupeA, groupeB, groupeC et groupeD. Selon si la liste est vide ou non, on s'en sert ou pas. 
    Du coup, je crée une liste du type ["A", "B", "D"] qui me signale que les groupes A, B et D sont non vides.
    J'appelle premGR le premier groupe récupéré dans cette liste, donc groupeA dans mon exemple. De fait la ligne
    unNombre = random.randint(0,len(premGR)-1)
    premGR doit se remplacer en la variable groupeA, or, tel que je l'exprime je remplace premGR par la chaîne "groupeA" et non par la liste groupeA.
    Comment corriger ça ?
    • Partager sur Facebook
    • Partager sur Twitter
      24 octobre 2016 à 21:02:42

      > J'ai défini 4 listes nommées groupeA, groupeB, groupeC et groupeD.
      mets les dans groupes = [groupeA, groupeB, groupeC, groupeD]
      > Selon si la liste est vide ou non, on s'en sert ou pas. 
      > Du coup, je crée une liste du type ["A", "B", "D"] qui me signale que les groupes A, B et D sont non vides.
      non_vides = [ g for g in groupes if g ]
      Note : si g est une liste, "if g" équivaut à "si g n'est pas vide"
      > J'appelle premGR le premier groupe récupéré dans cette liste, donc groupeA dans mon exemple.
      non_vides[0] du coup
      pour prendre un groupe non vide au hasard : random.choice( non_vides )
      • Partager sur Facebook
      • Partager sur Twitter
        24 octobre 2016 à 21:39:21

        J'ai pas vraiment tout compris :(
        • Partager sur Facebook
        • Partager sur Twitter
          24 octobre 2016 à 22:05:13

          C'est où que tu cales ? Explique ce que tu veux faire.
          • Partager sur Facebook
          • Partager sur Twitter
            24 octobre 2016 à 22:11:16

            liste3groupes = []
                    if grA:liste3groupes.append("A")
                    if grB:liste3groupes.append("B")
                    if grC:liste3groupes.append("C")
                    if grD:liste3groupes.append("D")
                    nb1 = int(nbreMultiplications/3)
                    nb2 = nb1
                    nb3 = nbreMultiplications - nb1 - nb2
                    premGR = "groupe" + liste3groupes[0]
                    deuxGR = "groupe" + liste3groupes[1]
                    troisGR = "groupe" + liste3groupes[2]
            
                    # Premier groupe de travail
                    for i in range(0,nb1):
                        unNombre = random.randint(0,len(premGR)-1)
                        question = "{} x {} = ? ".format(premGR[unNombre][0][0], premGR[unNombre][0][1])

            Remplacer premGR par groupeA, mais groupeA n'est pas une chaîne mais une liste, or écrit comme ça ça le modifie, je pense en chaîne, et ça me lève une erreur
            • Partager sur Facebook
            • Partager sur Twitter

            Renommer une liste en python

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown