J'ai besoin de délimiter la chaîne qui contient une nouvelle ligne. Comment pourrais-je y parvenir? Veuillez vous référer au code ci-dessous.
Contribution:
data = """a,b,c
d,e,f
g,h,i
j,k,l"""
Sortie souhaitée:
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
J'ai essayé les approches ci-dessous:
1. output = data.split('\n')
2. output = data.split('/n')
3. output = data.rstrip().split('\n')
python
string
python-2.7
Hariharan
la source
la source
repr(data)
?Réponses:
str.splitlines
méthode devrait vous donner exactement cela.la source
str.splitlines
est qu'il supprimera la finale\n
si elle est présente. Ie,'foo\nbar\n'.split() == ['foo', 'bar', '']
whilestr.splitlines('foo\nbar\n') == ['foo', 'bar']
str.split
, par défaut, divise par tous les caractères d'espacement. Si la chaîne réelle contient d'autres caractères d'espacement, vous pouvez utiliserOu comme @Ashwini Chaudhary l'a suggéré dans les commentaires , vous pouvez utiliser
la source
.splitlines
, que se passe-t-il si les cordes ont des espaces, etc.split("\n")
. Est-cesplitlines
mieux que.split("\n")
?\r\n
autres types de limites de ligne.\n
,splitlines()
l'ignorera tandissplit("\n")
qu'une chaîne vide supplémentaire sera ajoutée""
à la fin du résultat.Si vous souhaitez fractionner uniquement par sauts de ligne , il est préférable d'utiliser les lignes de fractionnement () :
Exemple:
Avec split () ça marche aussi:
Toutefois:
la source
data.split('\n')
?Il existe une méthode spécifiquement à cet effet:
la source
Voici:
la source