Partage
  • Partager sur Facebook
  • Partager sur Twitter

explode une string

help

Sujet résolu
    16 octobre 2018 à 21:16:36

    bonjour

    en gros j'ai une string comme ce ci :

    [[[109, 85, 47, 22, 2, 0, 2, 16, 36, 49, 82, 116, 131, 150, 165, 201, 215, 219, 217, 213, 194, 172, 153, 126, 89], [18, 18, 43, 69, 112, 170, 185, 211, 233, 242, 255, 255, 251, 241, 226, 167, 123, 95, 56, 47, 27, 11, 4, 0, 25]]]

    j'ai besoin de la transformer en chaine comme cela : [[109,18],[85,18],[47,43].......]

    merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      17 octobre 2018 à 8:33:10

      Bonjour,

      Supposons que les données:  [[[109, 85, 47, 22, 2, 0, 2, 16, 36, 49, 82, 116, 131, 150, 165, 201, 215, 219, 217, 213, 194, 172, 153, 126, 89], [18, 18, 43, 69, 112, 170, 185, 211, 233, 242, 255, 255, 251, 241, 226, 167, 123, 95, 56, 47, 27, 11, 4, 0, 25]]] soit une liste intitulée maliste,

      alors, pour avoir le résultat désiré il suffit écrire:

      list(map(list, list(zip(*maliste[0]))))


       

      • Partager sur Facebook
      • Partager sur Twitter
      Nil desperandum
        17 octobre 2018 à 10:48:37

        T'iés un bon , mais comment par exemple faire pour une liste un peux plus compliquer :

        [[[90, 88, 95, 104, 112, 122], [65, 31, 12, 0, 11, 65]],
         [[96, 93, 99, 105, 116, 121, 124, 120],
          [97, 129, 146, 152, 149, 141, 119, 108]],
         [[88, 34, 26, 7, 0, 21, 101], [67, 64, 83, 85, 90, 95, 100]],
         [[49, 51, 47, 32], [66, 76, 82, 82]],
         [[122, 193, 207, 219, 255, 246, 137], [67, 66, 45, 71, 77, 81, 87]]]

        en utilisant ta méthode ca me donne ca:

        [[90, 65], [88, 31], [95, 12], [104, 0], [112, 11], [122, 65]]

        ca me donne le resultats que je cherche pour la premiére partie mais pas pour le reste, comment est-ce que c'est possible de le faire , help plz

        • Partager sur Facebook
        • Partager sur Twitter
          17 octobre 2018 à 11:23:19

          Salut,

          Dans ce cas on procède ainsi:

          def zipper(liste):
              return list(map(list, list(zip(*liste))))
          

          ensuite:

          result = [zipper(liste) for liste in maliste]

          maliste étant les données a traiter.


          • Partager sur Facebook
          • Partager sur Twitter
          Nil desperandum
            19 octobre 2018 à 18:54:34

            bonsoir

            une petite dernière question : j'ai défini une fonction qui permet d'apeller la fonction zipper avec toutes les ligne d'un tableau['drawing'] qui est de type pandas :

            resConcat=dm[0:1]

            def resres(terter):
                global resConcat
                length=len(terter)
                for i in range(length):
                    ss=terter.loc[i]
                    dd = [zipper(liste) for liste in ss]
                    str1 = pd.Series( (v[0] for v in dd) )
                    resConcat['drawing']=resConcat['drawing'].append(str1)
                    i=i+1
                print(i)
                #print(resConcat)
                print(type(str1))
                #return resConcat
            #resConcat


            resres(dm['drawing'])

             
            mais ça me fait des erreurs ,je ne comprend pas pk ? et si non comment est-ce que on peut procéder différemment

            merci encore une fois @Aorgetos

            -
            Edité par AyAz1 19 octobre 2018 à 18:56:35

            • Partager sur Facebook
            • Partager sur Twitter

            explode une string

            × 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