J'ai essayé de chercher sur le Web des réponses pour diviser une chaîne en un tableau de caractères, mais je n'arrive pas à trouver une méthode simple
str.split(//)
ne semble pas fonctionner comme Ruby. Existe-t-il un moyen simple de le faire sans boucle?
Réponses:
Vous avez besoin d'une liste
la source
cast_method = lambda x: [x]
Vous prenez la chaîne et la passez à list ()
la source
Vous pouvez également le faire de cette manière très simple sans list ():
la source
for
, il n'y a pas grand-chose à expliquer. Je pense que vous devriez lire le tutoriel python sur les structures de données , en particulier la compréhension des listes.list(map(lambda c: c, iter("foobar")))
, mais plus lisible et significatif.Si vous souhaitez traiter votre chaîne un caractère à la fois. vous avez différentes options.
Production:
Production:
Production:
Production:
la source
J'ai exploré deux autres façons d'accomplir cette tâche. Cela peut être utile pour quelqu'un.
Le premier est simple:
Et le second utilise
map
etlambda
fonctionne. Il peut être approprié pour des tâches plus complexes:Par exemple
Voir les documents python pour plus de méthodes
la source
La tâche se résume à parcourir les caractères de la chaîne et à les rassembler dans une liste. La solution la plus naïve ressemblerait à
Bien sûr, il peut être raccourci
mais il existe encore des solutions plus courtes qui font la même chose.
list
Le constructeur peut être utilisé pour convertir n'importe quel itérable (itérateurs, listes, tuples, chaîne, etc.) en liste.Le gros avantage est qu'il fonctionne de la même manière dans Python 2 et Python 3.
De plus, à partir de Python 3.5 (grâce à l'impressionnant PEP 448 ), il est maintenant possible de construire une liste à partir de n'importe quel itérable en la décompressant dans un littéral de liste vide:
C'est plus propre et dans certains cas plus efficace que d'appeler
list
directement constructeur.Je déconseille d'utiliser des
map
approches basées sur, carmap
ne renvoie pas de liste en Python 3. Voir Comment utiliser le filtre, la carte et la réduction en Python 3 .la source
Si vous avez juste besoin d'un tableau de caractères:
Si vous souhaitez diviser la chaîne en une chaîne particulière:
la source
split()
La fonction intégrée ne séparera la valeur que sur la base d'une certaine condition, mais en un mot, elle ne peut pas remplir la condition. Ainsi, il peut être résolu à l'aide delist()
. Il appelle en interne le tableau et il stockera la valeur sur la base d'un tableau.Supposer,
la source
Déballez-les:
la source
Si vous souhaitez accéder en lecture seule à la chaîne, vous pouvez utiliser directement la notation de tableau.
Peut être utile pour tester sans utiliser regexp. La chaîne contient-elle un retour à la ligne de fin?
la source
Eh bien, bien que j'aime la version de liste (s), voici une autre façon plus verbeuse que j'ai trouvée (mais c'est cool, alors j'ai pensé l'ajouter à la mêlée):
la source
camelcase = ''.join([text[i].upper() if i % 2 else text[i].lower() for i in range(len(text))])
similaire à
list(string)
mais renvoie un générateur qui est évalué paresseusement au point d'utilisation, donc efficace en mémoire.la source
où a est la chaîne que vous souhaitez séparer. Les valeurs "a [i]" sont le caractère individuel de la chaîne, elles peuvent être ajoutées à une liste.
la source
for c in a: print c
est beaucoup plus direct