Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programme simple sur une liste

    29 mars 2015 à 12:23:05

    Bonjour, 

    Je n'arrive pas a faire un programme simple visant à ajouter devant chaque terme d'une liste un terme:

    Imaginons que j'ai une liste tel que :

    [2,3,4,5,6,....]

    et que l'on veut insérer des 1 avant chaque nombre

    je voudrais donc un programme qui retourne :

    [1,2,1,3,1,4,1,5,1,6,1....]

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      29 mars 2015 à 13:21:11

      for i in range(0, len(ls) * 2, 2):
          ls.insert(i,  1)
      
      • Partager sur Facebook
      • Partager sur Twitter
        29 mars 2015 à 14:13:20

        Ma méthode consiste à créer d'abord un générateur de 1. On utilise zip pour mettre un 1 avec chaque élément de la liste. Et on replace le tout dans une nouvelle liste en itérant sur les deux éléments.

        import itertools
        ma_liste = list(range(10)) # On met ici la liste qu'on veut.
        ones = itertools.repeat(1) # Générateur de 1
        [item for zipped in zip(ones, ma_liste) for item in zipped]
        

        [1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9]

        </pre>

        -
        Edité par Dan737 29 mars 2015 à 15:30:58

        • Partager sur Facebook
        • Partager sur Twitter
          29 mars 2015 à 14:59:27

          Merci beaucoup, par contre j'ai déceler une faute dans le programme voici le bon : 

          import itertools
          ma_liste = list(range(10)) # On met ici la liste qu'on veut.
          ones = itertools.repeat(1) # Générateur de 1
          [item for zipped in zip(ones, ma_liste) for item in zipped]
          # [1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9]
          • Partager sur Facebook
          • Partager sur Twitter
            29 mars 2015 à 15:30:46

            Ah oui, il manquait le e à ma_liste. Merci pour ce correctif. J'édite mon message tout de même au cas où quelqu'un le recopierait sans aller voir plus bas. :)

            • Partager sur Facebook
            • Partager sur Twitter
              29 mars 2015 à 16:05:14

              Maintenant j'ai un autre problème si vous savez faire :

              Bonjour, 

              Voila mon problème, je dois faire un programme tel que:

              J'ai des listes et un dictionnaire

              a=[1,2]

              b=[3,4]

              c=[5,6]

              d=[7,8]

              list2={'a':['b','c','d'],'b':['a','c'],'c':['a','b']}

              J'aimerai retourner le résultat suivant grâce un programme :

              [1,3,1,5,1,7],[2,4,2,6,2,8]

              [3,1,3,5],[4,2,4,6]

              [5,1,5,3],[6,2,6,4]

              en fait cela retourne :

              ex pour la premiere ligne : 

              [a[0],b[0],a[0],c[0],a[0],d[0]],[a[1],b[1],a[1],c[1]a[1],d[1]]

              • Partager sur Facebook
              • Partager sur Twitter
                29 mars 2015 à 16:53:51

                Je suis désolé mais je ne comprends pas ce que tu expliques. Pourrais-tu éventuellement donner un tout petit peu de contexte aussi? C'est quoi ces liste? Et ce dictionnaire? Que représentent les clés et valeurs?

                • Partager sur Facebook
                • Partager sur Twitter

                Programme simple sur 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