Transformer chaine de caractères Python

Bonjour,
Je suis actuellement en galère avec Python. Voilà j'ai ma chaine de caractères de type x="abcdefghijkl". Et j'aurais voulu que ça devienne une liste séparée tous les 3 caractères. En gros que ça me donne x=["abc","def","ghi","jkl"]. Car avec split on ne peut séparer qu'en fonction de symboles.
Sinon autre question en relation, j'aurais voulu pour chaque groupe de 3 caractères les espacer par un symbole (en gros : abc - def - ghi - jkl). Avec la fonction for, elle prend tous les caractères dans x et applique le programme pour chaque caractère, mais je souhaiterais en gros qu'elle prenne par groupe de 3 caractères et applique le programme pour chaque groupe.
Voilà j'espère que vous avez compris.
Merci d'avance pour vos réponse

2 réponses

  1. Modérateur
    Bonjour
    Tu fais un for
    Tu y ajoute une variable qui servira de compteur
    A chaque fois qu'il arrive à 3 tu joutes ton symbole et tu remets le compteur à 0
    1. Merci Jordane pour ta réponse.
      J'ai essayé un compteur avec while mais ça ne fonctionne pas. Auriez vous un exemple à me proposer svp ?
      1. Ce que vous demandez à faire est très simple en python, cela s'effectue en utilisant les slices.

        >>> x = "abcdefghijkl"
        >>> for i in range(0, len(x), 3):
        ...   print(x[i:i+3])
        ... 
        abc
        def
        ghi
        jkl
        >>> lx = [x[i:i+3] for i in range(0, len(x), 3)]
        >>> lx
        ['abc', 'def', 'ghi', 'jkl']
        >>> ' - '.join(lx)
        'abc - def - ghi - jkl'
      2. @youkiMerci youki c'est exactement cela que je cherchais, et j'étais parti beaucoup trop loin.
        Mais y a un truc que je comprends pas, c'est le moment où tu passes en ligne les groupes qui sont marqués en colonne. Y aurait pas un autre moyen de le faire? Avec liste ou des [ ] par exemple plutôt que de remarquer toute la ligne?