Transformer chaine de caractères Python

Fermé
blood - 24 sept. 2018 à 00:17
 Blood - 24 sept. 2018 à 19:01
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 38347 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 décembre 2024 4 719
24 sept. 2018 à 00:42
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
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
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
24 sept. 2018 à 19:01
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