521 votes

Split python chaîne chaque caractère nième ?

Double Possible:
Qu'est-ce que la plupart des “pythonic” chemin à parcourir une liste en morceaux?

Est-il possible de scinder une chaîne python chaque nième caractère?

Par exemple, supposons que j'ai une chaîne de caractères contenant le texte suivant:

'1234567890'

Comment puis-je obtenir qu'elle ressemble à ceci:

['12','34','56','78','90']

707voto

satomacoto Points 951
>>> line = '1234567890'
>>> n = 2
>>> [line[i:i+n] for i in range(0, len(line), n)]
['12', '34', '56', '78', '90']

284voto

the wolf Points 10164

Pour être complet, vous pouvez le faire avec une expression régulière :

Comme indiqué dans le commentaire, vous pouvez faire ceci :

93voto

Andrew Clark Points 77748

Une autre manière commune de regroupement des éléments en groupes n-longueur :

Cette méthode vient directement de la documentation pour `` .

72voto

Russell Borogove Points 8423

Je pense que c’est plus court et plus lisible que la version d’itertools :

8voto

enderskill Points 1950

Essayez le code suivant:

 from itertools import islice

def split_every(n, iterable):
    i = iter(iterable)
    piece = list(islice(i, n))
    while piece:
        yield piece
        piece = list(islice(i, n))

s = '1234567890'
print list(split_every(2, list(s)))
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X