Partage
  • Partager sur Facebook
  • Partager sur Twitter

Transformer une liste de listes en une seule liste

    28 novembre 2020 à 14:44:25

    Bonjour, je souhaiterai pouvoir transformer ceci

    [['a', 'b'] ['c', 'd'] ['e', 'f']]

    en

    ['a','b','c','d','e','f']

    Y aurait-il une manière facile de le faire ?

    Merci d'avance.


    • Partager sur Facebook
    • Partager sur Twitter
      28 novembre 2020 à 15:07:51

      Voici un exemple,

      def extend_list(my_list, res=None):
          if res is None:
              res = []
          for obj in my_list:
              if isinstance(obj, (list, tuple)):
                  extend_list(obj, res)
              else:
                  res.append(obj)
          return res
      
      
      old_list = [['a', 'b'], ['c', 'd'], ['e', 'f']]
      print(extend_list(old_list))

      Je sais pas si c'est assez simple ou pas...

      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        28 novembre 2020 à 20:12:29

        L=[['a', 'b'], ['c', 'd'], ['e', 'f']]
        
        print(sum(L, []))
        ['a', 'b', 'c', 'd', 'e', 'f']
        


        • Partager sur Facebook
        • Partager sur Twitter
          28 novembre 2020 à 20:28:53

          bonjour, je rencontre un problème avec mon programme, j'ai commencé python il y'a 2 semaines donc veuillez excuser la simplicité de mon programme :)

          list = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]

          mdp = input("entrez un mot de passe:")
          chaine = str()

          def test(chaine,mdp):
          if chaine==mdp:
          print("le mot de passe est",chaine)

          def brute_force():
          for l in list:
          chaine=1
          print(chaine,mdp)

          for l2 in list :
          chaine = l + l2
          test(chaine, mdp)

          for l3 in list :
          chaine = l + l2 + l3
          test(chaine, mdp)

          for l4 in list :
          chaine = l + l2 + l3 + l4
          test(chaine, mdp)

          for l5 in list :
          chaine = l + l2 + l3 + l4 + l5
          test(chaine, mdp)

          brute_force()
          • Partager sur Facebook
          • Partager sur Twitter
            28 novembre 2020 à 20:57:44

            BilalGniii a écrit:

            bonjour, je rencontre un problème avec mon programme, j'ai commencé python il y'a 2 semaines donc veuillez excuser la simplicité de mon programme :)


            Ton message ne répond pas à la discussion ouverte, il te faut créer un nouveau message.
            • Partager sur Facebook
            • Partager sur Twitter
              29 novembre 2020 à 3:32:25

              from functools import reduce
              single=lambda L: [L] if not isinstance(L, list) else reduce(lambda a,b: [*a,*b], [single(l) for l in L])
              Je l'ai testé avec des listes de listes de listes avec des éléments parasites dans les listes (valeurs simples)
              • Partager sur Facebook
              • Partager sur Twitter

              Le Tout est souvent plus grand que la somme de ses parties.

                29 novembre 2020 à 10:58:24

                >>> items = [['a', 'b'], ['c', 'd'], ['e', 'f']]
                >>> [e for r in items for e in r]
                ['a', 'b', 'c', 'd', 'e', 'f']
                
                • Partager sur Facebook
                • Partager sur Twitter
                  3 décembre 2020 à 23:17:03

                  entwanne a écrit:

                  >>> items = [['a', 'b'], ['c', 'd'], ['e', 'f']]
                  >>> [e for r in items for e in r]
                  ['a', 'b', 'c', 'd', 'e', 'f']
                  

                  Nickel merci !
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Transformer une liste de listes en une seule 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