Transformer chaine de caractères Python

blood -  
 Blood -
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


A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
0
Blood
 
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 ?
0
youki
 
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'
0
Blood > youki
 
Merci 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?
0