Muszę oddzielić ciąg, który zawiera nowy wiersz. Jak mam to osiągnąć? Proszę zapoznać się z poniższym kodem.
Wejście:
data = """a,b,c
d,e,f
g,h,i
j,k,l"""
Wymagane wyjście:
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
Wypróbowałem poniższe podejścia:
1. output = data.split('\n')
2. output = data.split('/n')
3. output = data.rstrip().split('\n')
python
string
python-2.7
Hariharan
źródło
źródło
repr(data)
?Odpowiedzi:
str.splitlines
metoda powinna ci to dać.źródło
str.splitlines
jest to, że usunie finał,\n
jeśli jest obecny. Tzn.,'foo\nbar\n'.split() == ['foo', 'bar', '']
Podczas gdystr.splitlines('foo\nbar\n') == ['foo', 'bar']
str.split
, domyślnie dzieli się na wszystkie białe znaki. Jeśli rzeczywisty ciąg ma inne białe znaki, możesz użyćLub, jak zasugerował @Ashwini Chaudhary w komentarzach , możesz użyć
źródło
.splitlines
, co jeśli struny mają spacje itp.split("\n")
. Jestsplitlines
lepsze niż.split("\n")
?\r\n
innych typów granic linii.\n
,splitlines()
zignoruje go, podczas gdysplit("\n")
będzie miał dodatkowy pusty ciąg""
na końcu wyniku.Jeśli chcesz dzielić tylko przez nowe linie , lepiej jest użyć podzielonych linii () :
Przykład:
Z split () działa również:
Jednak:
źródło
data.split('\n')
?Istnieje metoda specjalnie do tego celu:
źródło
Proszę bardzo:
źródło