Partage
  • Partager sur Facebook
  • Partager sur Twitter

Creation de listes a partir d'une liste

    2 février 2015 à 23:29:52

    Bonjour je rencontre un petit problème , j' ai une liste de nombres : [45,312,33,54,12,64,84,31,12,54,65,12] et je dois impérativement ressortir une autre liste qui va contenir les nombres 4 par 4 En gros en sortie je souhaiterai retrouver cela : [[45,312,33,54],[12,64,84,31],[12,54,65,12]] Ce serait cool si quelqu'un pourrai me donner un petit coup de main. Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      3 février 2015 à 1:03:37

      Salut

      J'ai fais quelque chose comme ça :

      >>> liste = [45,312,33,54,12,64,84,31,12,54,65,12]
      >>> liste = [liste[n:n+4] for n in range(0, len(liste), 4)]
      >>> liste
      >>> [[45, 312, 33, 54], [12, 64, 84, 31], [12, 54, 65, 12]]
      



      -
      Edité par InhumanRampage 3 février 2015 à 1:07:54

      • Partager sur Facebook
      • Partager sur Twitter
        3 février 2015 à 10:01:36

        Merci c'est exactement ce que je recherchais

        • Partager sur Facebook
        • Partager sur Twitter
          3 février 2015 à 10:09:21

          Ou encore comme ceci:

          >>> liste = [45,312,33,54,12,64,84,31,12,54,65,12]
          >>> it = iter(liste)
          >>> liste = list(zip(it, it, it, it))
          >>> liste
          [(45, 312, 33, 54), (12, 64, 84, 31), (12, 54, 65, 12)]
          
          • Partager sur Facebook
          • Partager sur Twitter
            3 février 2015 à 10:18:13

            bonjour

            Justement j''étudie en ce moment le module numpy.

            >>> from numpy import *
            >>> li = array( [45,312,33,54,12,64,84,31,12,54,65,12] )
            >>> li2 = li.reshape(3,4)
            >>> li2
            array([[ 45, 312,  33,  54],
                   [ 12,  64,  84,  31],
                   [ 12,  54,  65,  12]])




            • Partager sur Facebook
            • Partager sur Twitter
              3 février 2015 à 11:34:39

              Encore une petite question si je souhaite calculer à l’intérieure de mes nouvelles nouvelles listes : [[45 +312+33+54], [12+ 64+84+31], [12+ 54+ 65+12]] Pour avoir en sortie : [[444], [191], [143]] J'ai un peu de mal avec les listes en compréhension

              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                3 février 2015 à 11:48:24

                Ici tu peux tout simplement utiliser la fonction `sum` en compréhension:

                liste = [[45, 312, 33, 54], [12, 64, 84, 31], [12, 54, 65, 12]]
                
                liste_somme = [sum(sublist) for sublist in liste]
                • Partager sur Facebook
                • Partager sur Twitter
                  3 février 2015 à 20:41:02

                  Merci a tous pour vos réponses

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Creation de listes a partir d'une liste

                  × 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