Быть в курсе
Аватарка автора Редакция Рег.облако
ИнструкцииОблако

Как разделить строку с помощью метода split() в Python

21 октября 2025

15 минут

Телеграм

ВКонтакте

Работа со строками в Python — одна из самых частых задач при написании программ. Иногда нужно разбить текст на части: например, разделить предложение на отдельные слова или выделить данные из строки, где элементы разделены запятыми или пробелами. Для этого в языке есть удобные встроенные методы. Например, split().

Разрабатывайте, тестируйте и запускайте цифровые продукты в облаке без лишних затрат на инфраструктуру. Гибкая среда для экспериментов и готовых решений доступна на платформе Рег.облака.

Что делает метод split()

Метод split() в Python разбивает строку на части и возвращает результат в виде списка. Вы сами указываете символ или последовательность символов, по которым нужно разделить текст. Если ничего не указать, строка будет разбита по пробелам и другим пробельным символам — табуляции или переводу строки.

Синтаксис метода:

Где:

  • str — строка, к которой применяется метод;
  • sep — разделитель, по которому строка делится (по умолчанию — пробелы);
  • maxsplit — ограничение на количество разбиений (по умолчанию без ограничений).

Как разделить строку на части

Метод split() применяется в самых разных случаях: когда нужно разбить текст на отдельные слова, преобразовать строку с данными в список или выделить только часть информации. В зависимости от разделителя и дополнительных параметров можно получить разный результат.

Взглянем на основные варианты работы с этим методом.

Разделение строки по пробелам

Самый распространенный вариант использования метода split() — разделение строки на части по пробелам. Для этого не нужно указывать параметр sep, достаточно вызвать метод без аргументов:

['Москва', 'Санкт-Петербург', 'Казань', 'Новосибирск']

Важно учитывать, что разделение идет по пробелам, а не по другим символам пунктуации. Если в строке встречаются запятые или точки, они останутся внутри подстрок:

['яблоко,', 'апельсин,', 'банан']

Хотя split() не удаляет символы, отличные от пробелов, он одинаково хорошо обрабатывает все виды пробельных символов. К ним относятся:

  • обычный пробел;
  • символ табуляции (\t);
  • символ перевода строки (\n).

Например:

['яблоко', 'апельсин', 'банан']

Даже если в строке встречаются разные пробельные символы подряд, метод автоматически убирает их и не создает пустых элементов:

['один', 'два', 'три', 'четыре']

Таким образом, использование split() без параметров — универсальный способ разбить текст на слова. Но если нужно избавиться от лишних знаков пунктуации (например, запятых или точек), придется использовать дополнительные методы, такие как strip() или регулярные выражения.

Источник: Freepik. Метод split()поможет разделить текст на слова, но не избавит от лишних знаков пунктуации

Разделение строки по запятой и другим разделителям

Данные в строке могут отделяться не пробелами, а запятыми, точками с запятой, двоеточиями или другими символами. В таких случаях нужно явно указать разделитель в методе split(). Это делается с помощью параметра sep.

Например, разделим строку с продуктами по запятой:

['хлеб', ' молоко', ' сыр', ' масло']

Обратите внимание, что после запятой сохранились пробелы. Это нормально, так как split() удаляет только сам разделитель. Чтобы убрать лишние пробелы, можно дополнительно применить метод strip() для каждого элемента:

['хлеб', 'молоко', 'сыр', 'масло']

Аналогично можно использовать и другие символы:

['10', '20', '30', '40']

['имя', 'фамилия', 'отчество']

Таким образом, метод split() легко подстраивается под любые разделители: будь то запятая, точка с запятой, двоеточие или даже комбинация символов. Все зависит от того, как организованы данные внутри строки.

Ограничение количества разбиений

По умолчанию метод split() разделяет строку столько раз, сколько встретит разделителей. Но иногда нужно ограничить количество разбиений и оставить часть строки неизменной. Для этого используется параметр maxsplit.

Если указать maxsplit, метод выполнит только заданное количество разбиений, а остаток строки сохранит в последнем элементе списка.

Простейший пример:

['один', 'два', 'три четыре пять']

Здесь разделение произошло только два раза:

  • первый элемент — «один»;
  • второй элемент — «два»;
  • все остальное попало в третий элемент.

maxsplit можно использовать и с другими разделителями. Например, разберем строку с датой и временем:

['2025', '09', ’26-15-30']

В результате получили три части: год, месяц и все остальное.

Если указать значение 1, получится всего два элемента:

['имя', 'значение=дополнительно']

Таким образом, параметр maxsplit позволяет гибко управлять результатом: разбивать строку только частично и сохранять остаток без изменений. Это удобно, когда нужно выделить лишь первые элементы, а остальное оставить, как есть.

Источник: Freepik. Преобразовать строку с данными в список также можно с помощью метода split()

Как разделить строку на символы

Работать со строками в Python можно не только на уровне слов или отдельных частей текста, но и посимвольно. Этот вариант подойдет, если важно анализировать каждый символ отдельно: проверять буквы и цифры, подсчитать количество определенных знаков, изменять регистр или проводить другую обработку. Например:

  • при проверке, содержит ли строка только буквы или цифры;
  • при подсчете частоты встречаемости символов;
  • при обработке паролей, кодов и других строк, где важен каждый знак;
  • при создании программ для шифрования или работы с криптографией.

В Python есть несколько способов разделить строку на символы: можно напрямую превратить ее в список при помощи функции list() или перебрать каждый символ с помощью цикла или генератора.

Преобразование строки в список символов list()

Самый простой способ получить отдельные символы из строки — использовать встроенную функцию list(). Она принимает строку и возвращает список, где каждый элемент — это символ из этой строки.

['П', 'р', 'и', 'в', 'е', 'т']

В результате строка превратилась в список, и теперь с каждым символом можно работать отдельно: изменять регистр, удалять ненужные знаки, сортировать или анализировать содержимое.

Использование генераторов и циклов

Разделить строку на символы можно и без функции list(). Для этого достаточно пройтись по строке в цикле или собрать символы в новый список с помощью генератора.

Пример с циклом for:

Результат:

М
о
с
к
в
а

Генератор списка позволяет сделать то же самое, но сразу получить список символов:

['К', 'о', 'д']

При использовании генераторов удобно сразу обрабатывать символы. Например, перевести их в верхний регистр:

['P', 'Y', 'T', 'H', 'O', 'N']

Этот способ удобен, когда нужно не просто разделить строку на символы, а одновременно изменить их.

Источник: Freepik. В Python работать со строками также можно посимвольно

Другие методы разделения строк

Кроме привычного split(), в Python есть и другие способы разбиения строк. Они подойдут в определенных случаях, когда нужно больше контроля над результатом или особая логика.

Метод partition() и rpartition()

Нужно разделить строку не на список частей, а ровно на две части вокруг какого-то разделителя? Для этого в Python есть методы partition() и rpartition().

partition() ищет разделитель слева направо и возвращает кортеж из трех элементов: часть до разделителя, сам разделитель и часть после него:

('Имя', ':', ' Иван')

rpartition() делает то же самое, но ищет разделитель с конца строки:

('путь/к/файлу', '/', 'документ.txt')

Разница между ними в том, где ищется первый найденный разделитель — в начале или в конце строки.

Эти методы подойдут, когда важно сохранить сам разделитель и разделить строку только один раз, например:

  • при работе с путями к файлам (отделить имя файла от папки);
  • при обработке строк формата «ключ: значение»;
  • при выделении расширения файла.
Источник: Freepik. Методы partition() и rpartition() служат для разделения строки относительно разделителя

Метод splitlines() для разделения по строкам

Если строка содержит несколько строк текста, разделенных переносами (\n, \r или \r\n), можно использовать метод splitlines(). Он автоматически разбивает текст по символам перевода строки и возвращает список строк.

Простейший пример:

['Первая строка', 'Вторая строка', 'Третья строка']

По умолчанию метод убирает символы переноса. Но если указать параметр True, то переносы сохранятся в результате:

['Первая строка\n', 'Вторая строка\n', 'Третья строка']

Метод splitlines() очень удобно использовать для обработки многострочного текста: содержимого файлов, логов, сообщений или любых данных, где важна построчная работа.

Регулярные выражения (re.split)

Иногда стандартных методов для разделения строки недостаточно. Например, если нужно разделить текст сразу по нескольким символам или по более сложным правилам. В таких случаях помогает модуль re, где есть функция re.split().

Она работает похоже на split(), но вместо обычного символа принимает шаблон регулярного выражения. Это позволяет задавать сразу несколько вариантов разделителей.

Пример:

['яблоко', 'апельсин', 'банан', 'груша']

Как мы видим, строка разбилась по запятой, точке с запятой, двоеточию и пробелам.

Можно использовать и более сложные шаблоны. Например, разделить строку по любому числу:

['раздел', 'текстраздел', 'текстраздел', '']

re.split() будет полезен, если у данных нет четкой структуры или в строке встречаются разные виды разделителей.

Источник: Freepik. Методы Python позволяют обрабатывать данные, в которых нет четкой структуры

Несколько практических примеров

Методы разделения строк в Python применяются во многих реальных задачах. Они помогают обрабатывать текстовые данные, пользовательский ввод, файлы и таблицы, превращая строки в удобные для работы списки.

Разделение нужно в самых разных случаях:

  • при работе с CSV-файлами или данными из баз данных;
  • при обработке текстов или логов;
  • при анализе пользовательского ввода в программах;
  • при подсчете слов или символов для статистики или проверки текста.

Далее мы покажем вам несколько практических примеров.

Разделение CSV-строки на данные

CSV (Comma-Separated Values) — один из самых популярных форматов для хранения таблиц и данных. В таких строках значения разделяются запятыми, точками с запятой или другими символами. Чтобы работать с такими данными в Python, строки удобно превращать в списки с помощью метода split() или функции re.split().

Простой пример с запятой в качестве разделителя:

['Иван', 'Петров', '25', 'Москва']

Если строки содержат разные разделители, например запятые, точки с запятой и двоеточия, можно использовать регулярные выражения:

['Иван', 'Петров', '25', 'Москва']

Если после разбиения остались пробелы или лишние символы, их можно удалить с помощью метода strip():

['Иван', 'Петров', '25', 'Москва']

Источник: Freepik. Методы разделения строк превращают делают данные удобными для работы

Обработка пользовательского ввода

Часто программы получают данные от пользователя в виде одной строки, где элементы разделены пробелами или другими символами. Чтобы работать с такими данными, их сначала нужно разбить на отдельные элементы. Для этого отлично подходит метод split().

Пример с числами, введенными через пробел:

[10, 20, 30, 40]

В этом примере метод split() превращает строку в список отдельных чисел, а генератор списка сразу преобразует их в целые числа.

То же можно сделать с любыми другими данными, например, именами или словами:

['Анна', 'Борис', 'Сергей']

Если пользователь вводит данные через другой разделитель (например, запятую), его можно указать явно:

['Анна', 'Борис', 'Сергей']

Методы разделения строк делают обработку пользовательского ввода гибкой и позволяют быстро превращать текст в удобный для работы формат.

Разделение текста на слова и символы одновременно

В некоторых задачах требуется одновременно анализировать текст и по словам, и по символам. Например, это может быть полезно при подсчете частоты слов и букв, проверке пунктуации или анализе текста для статистики.
Для разделения на слова обычно используют метод split(), который превращает строку в список слов:

['Привет,', 'мир!']

Обратите внимание, что при этом знаки препинания остаются внутри слов.
Чтобы одновременно работать с символами, строку можно преобразовать в список через list():

['П', 'р', 'и', 'в', 'е', 'т', ',', ' ', 'м', 'и', 'р', '!']

Это позволяет анализировать текст более детально, например:

  • подсчитать количество символов;
  • проверить наличие конкретных букв;
  • отделить пробелы, знаки препинания или цифры;
  • обработать каждую букву отдельно (например, перевести в верхний или нижний регистр).

Заключение

Разделение строк — одна из базовых задач при работе с текстовыми данными в Python. Методы split(), partition(), splitlines(), использование list() и регулярных выражений позволяют гибко обрабатывать строки: разбивать их на слова, символы или отдельные элементы с учетом разных разделителей.

Выбор конкретного метода зависит от задачи: нужно ли разделить строку полностью, ограничить число разбиений, обработать многострочный текст или применить сложные условия через регулярные выражения.

Источник: Freepik. Ответы на самые частые вопросы о разделении строк в Python

FAQ

Чем split() отличается от partition()?

Метод split() разбивает строку на список всех частей по заданному разделителю (можно несколько раз или полностью), а partition() делит строку только один раз на три части: до разделителя, сам разделитель и после него, возвращая кортеж.

Как разделить строку по нескольким разделителям сразу?

Для разделения строки по нескольким разделителям одновременно используют регулярные выражения и функцию re.split() из модуля re, где в шаблоне можно указать все нужные символы-разделители.

Как разделить строку и сохранить разделители?

Если нужно разделить строку и при этом сохранить сами разделители, стандартный split() не подойдет, потому что он удаляет разделители. В таких случаях используют регулярные выражения с функцией re.split(), указав шаблон с группировкой.

Группировка в скобках () позволяет включить разделитель в результат. Таким образом, после разбиения в списке остаются и сами разделители, и текст между ними.

Можно ли разделить строку фиксированной длины на равные части?

Да, можно. Для этого обычно используют срезы строки в цикле или генератор списка, разбивая строку на куски нужной длины.

Как разделить строку на символы без использования list()?

Можно перебрать строку в цикле for или использовать генератор списка: каждый символ строки сам по себе уже элемент последовательности, так что дополнительная функция не нужна.

Новые статьи