Метод python split


В python split — метод, позволяющий оперировать выводом, в частности — извлечь часть строки, отделенную каким-то образом от остального содержимого. Это аналог awk в bash. Разделителем может быть запятая, двоеточие, пробел и т.п.



python split


Для примера рассмотрим строку с несколькими абстрактными значениями, разделенными запятыми.

> string_with_comas="thing1, thing2, thing3"

> string_with_comas.split(",")

['thing1', ' thing2', ' thing3']



После применения метода split данные представляют собой список (list).

>type(string_with_comas)

<class 'str'>


> type(string_with_comas.split(","))

<class 'list'>



Методу split передается разделитель — запятая,вертикальная черта, тире, двоеточие или что-то иное.


Если аргумент не указывать — разбиение произойдет по пробелам.

> string_with_comas.split()

['thing1,', 'thing2,', 'thing3']



> long_string="Filler text is text that shares some characteristics of a real written text, but is random or otherwise generated. It may be used to display a sample of fonts, generate text for testing, or to spoof an e-mail spam filter."


> long_string.split()

['Filler', 'text', 'is', 'text', 'that', 'shares', 'some', 'characteristics', 'of', 'a', 'real', 'written', 'text,', 'but', 'is', 'random', 'or', 'otherwise', 'generated.', 'It', 'may', 'be', 'used', 'to', 'display', 'a', 'sample', 'of', 'fonts,', 'generate', 'text', 'for', 'testing,', 'or', 'to', 'spoof', 'an', 'e-mail', 'spam', 'filter.']



Поскольку на выходе лист, с его элементами можно работать обращаясь к ним по индексу:

> long_string.split()[7]

'characteristics'



Метод splitlines


С многострочным текстом нужно работать иначе


>> long_string='''
... Filler text is text that shares some characteristics of a real
... written text, but is random or otherwise generated. It may be used to display a
... sample of fonts, generate text for testing, or to spoof an e-mail spam filter.'''



split нужного результат не даст и чтобы получить list с отдельными словами требуется выполнить два действия:

1)

Применить метод splitlines

> long_string.splitlines()

[», 'Filler text is text that shares some characteristics of a real', 'written text, but is random or otherwise generated. It may be used to display a', 'sample of fonts, generate text for testing, or to spoof an e-mail spam filter.']


На выходе будет list из содержимого строк

2)



Далее каждая строка разбирается в цикле for

> for line in long_string.splitlines():
… print (line.split())

[]
['Filler', 'text', 'is', 'text', 'that', 'shares', 'some', 'characteristics', 'of', 'a', 'real']
['written', 'text,', 'but', 'is', 'random', 'or', 'otherwise', 'generated.', 'It', 'may', 'be', 'used', 'to', 'display', 'a']
['sample', 'of', 'fonts,', 'generate', 'text', 'for', 'testing,', 'or', 'to', 'spoof', 'an', 'e-mail', 'spam', 'filter.']



Про методы find и index в Python.

Сказать спасибо