Функция split() в Python: как разделить строку на части / Skillbox Media
Безжалостно кромсаем строки в Python.
Курс с трудоустройством: «Профессия Python-разработчик»
Узнать большеСтроки в Python бывают очень длинными и часто содержат много лишних данных. Например, служебную информацию в лог-файлах приложений или ошибки пользовательского ввода. Чтобы получить из строки то, что действительно нужно, иногда её лучше разделить на части. Сделать это можно с помощью функции split(). Разбираем её синтаксис и возможности в этой статье.
Содержание
- Что делает функция split() в Python
- Как разделить строку в Python
- По пробелу
- По запятой или по другому символу
- По последовательности символов
- По нескольким разделителям
- Ограничение количества разбиений
Что делает функция split() в Python
split() — функция в Python, которую используют для разделения строки на несколько частей. Она полезна, когда надо проанализировать текст или, например, получить данные из CSV-файлов и логов.
Базовый синтаксис функции split() выглядит так:
В примере выше:
- sep — разделитель, по которому разбивается исходная строка. По умолчанию или при указании None разделителями будут считаться любые пробельные символы (пробел, перевод строки, табуляция и другие).
- maxsplit — параметр, который определяет максимальное количество разбиений. По умолчанию (или если указано -1) строка разбивается полностью на все возможные подстроки.
Читайте также:
Как в Python разбить строку на символы
Как разделить строку в Python
Рассмотрим способы разделения строк с помощью функции split().
Самый частый кейс использования split () — разделение строки по пробелу. Для этого при вызове функции не надо указывать разделитель sep. Для примера создадим строку с перечислением имён через запятую, а после этого разделим её по пробелу и выведем результат в консоль с помощью print():
В итоге мы получили список подстрок, но важно отметить, что запятые остались рядом с именами. Это происходит из-за того, что мы разделяли строку по пробелам, а запятые — такие же символы, как буквы. Поэтому функция split() не удалила их.
Если использовать в строке символ табуляции (\t) и перевода строки (\n), то результат не изменится. Всё из-за того, что табуляция и перевод строки относятся к пробельным символам:
Читайте также:
Списки в Python: что это такое и как с ними работать
Для разделения строки по запятой или любому другому символу в качестве аргумента функции split() можно указать разделитель. Для примера создадим строку с названиями животных на английском языке и разделим её по запятой. В итоге получим список, состоящий из отдельных слов:
В качестве разделителя можно использовать любые другие символы. В примере ниже мы разделяем строку по символу звёздочки *. Если разделитель встречается несколько раз подряд, то Python создаёт пустые строки:
Иногда строки содержат в себе уже готовые разделители в виде комбинаций символов. В таком случае функции split() можно передать последовательность.
В примере ниже есть строка text с данными анкеты пользователя, поля которой разделены с помощью двойного символа решётки (##). Передадим эту последовательность в split() и получим на выходе список подстрок в формате «ключ — значение»:
Читайте также:
Методы и функции строк в Python
С помощью регулярных выражений строку можно разбить по нескольким символам или последовательностям одновременно. Например, если надо выполнить разделение по запятой, точке, вопросительному знаку, пробелу и переносу строки, то следует передать в split() регулярное выражение r'[,.?\n ]+’, в котором:
- квадратные скобки [] используются для указания набора символов, каждый из которых может быть разделителем;
- внутри скобок перечислены символы-разделители: запятая ,, точка ., вопросительный знак ?, перенос строки \n, пробел ‘ ’;
- знак + после квадратных скобок означает, что разделитель может включать один или несколько символов из набора.
Для работы с регулярными выражениями надо импортировать модуль re, а функция разделения строки будет выглядеть как re.split(r'[,.\n? ]+’, text). В качестве первого аргумента следует передать регулярное выражение, а в качестве второго — разделяемую строку:
Читайте также:
Регулярные выражения в Python: синтаксис, полезные функции и задачи
В качестве второго аргумента в функцию split() можно передать значение параметра maxsplit, который определяет максимальное количество разделений. Например, если указать maxsplit=3, то Python разделит строку 3 раза, а в результате будет 4 (maxsplit+1) элемента. По умолчанию значение maxsplit равняется -1, а разделение происходит столько раз, сколько возможно.
Для примера разделим строку по слешу только два раза. После второго разделения Python вернёт оставшуюся часть строки без изменений:
Читайте также:
Сортировка данных в Python: что нужно знать
В заключение
Функция split() — удобный инструмент для парсинга данных, чтения файлов и обработки пользовательского ввода. С её помощью можно быстро разделить строку на элементы для дальнейшей работы.
Функция поддерживает разделение строк по фиксированным символам и по шаблонам с использованием регулярных выражений. Параметр maxsplit позволяет ограничить количество получаемых подстрок.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!
Читайте также:
- Типы данных в Python для начинающих: какие бывают и как с ними работать
- «Главное не оффер, а кайф от того, что делаешь»: путь начинающего Python-разработчика
- Методы и функции строк в Python