Руководство по использованию метода split в Python

Строки — отличный инструмент в руках Python-разработчиков. В Python строка —
это последовательность символов в кавычках. Она может включать числа, буквы и
символы. С помощью Python строку можно разделить на список подстрок по
определенному разделителю. Это делается с помощью метода split.

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

Что делает split в Python?

Функция split сканирует всю строку и разделяет ее в случае нахождения разделителя.
В строке должен быть как минимум один разделитель. Им может выступать в том
числе и символ пробела. Пробел — разделитель по умолчанию.

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

Синтаксис функции следующий:

string.split(separator*, maxsplit*)

Параметр separator — необязательный, но он позволяет задать разделитель
вручную.

Параметр maxsplit определяет максимальное количество разделений. Значение по
умолчанию — -1, будут выполнены все разделения.

Как разделить строку в Python

Метод .split() разделяет основную строку по разделителю и возвращает список строк.

my_st = "Пример строки Python"
print(my_st.split())

В примере выше была объявлена строка my_st. Она помещена в одинарные кавычки. Функция .split() разделяет ее на список таких строк:

['Пример', 'строки', 'Python']

Вывод содержит список подстрок.

Еще один пример разбиения строки:

my_st = "синий,оранжевый,красный"
print(my_st.split(","))

В приведенном выше примере мы создали строку my_st с 3 подстроками. В этом случае именно запятая выступит параметром разделения в функции. Вывод будет следующий:

['синий', 'оранжевый', 'красный']

Примеры разделения строки в Python

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

Если не передать параметр разделителя, то .split() выполнит разделение по пробелу.

my_st = "Пример строки Python"
print(my_st.split())

Код вернет: ['Пример', 'строки', 'Python'].

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

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

Разделителем может выступать запятая (","). Это вернет список строк, которые
изначально были окружены запятыми.

my_st = "Например, строка Python"
print(my_st.split(","))

Вывод: ['Например', ' строка Python']. Результатом является список подстрок, разделенных по запятым в исходной строке.

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

В Python можно использовать даже несколько разделителей. Для этого просто требуется передать несколько символов в качестве разделителей функции split.

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

import re

my_st = "Я\nучу; язык,программирования\nPython"
print(re.split(";|,|\n", my_st))

Вывод:

['Я', 'учу', ' язык', 'программирования', 'Python']

Здесь мы используем модуль re и функции регулярных выражений. Переменной my_st была присвоена строка с несколькими разделителями, включая «\n», «;» и «,». А функция re.split() вызывается для этой строки с перечисленными выше разделителями.

Вывод — список подстрок, разделенных на основе оригинальной строки.

Как работает параметр maxsplit в функции split?

Этот параметр помогает задать максимальное число разделений. Разделить стоку можно, передав значение этого параметра. Например, если разделителем выступает символ пробела, а значение maxsplit1,
то строка будет разделена максимум на 2 подстроки.

languages = "Python,Java,Perl,PHP,Swift"

print(languages.split(",",1))

В строке languages хранится строка с перечислением разных языков. Функция split принимает запятую в качестве разделителя и значение 1 для параметра maxsplit. Это значит, что разделение будет выполнено только один раз.

['Python', 'Java,Perl,PHP,Swift']

Следующий пример показывает, как выполнить разделение два раза. Здесь разделителем выступает пробел, а значение maxplit равно 2.

languages = "Python,Java,Perl,PHP,Swift"

print(languages.split(",",2))
['Python', 'Java', 'Perl,PHP,Swift']

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

Функция .split() не может разбить строку на две равных части.
Однако для этого можно использовать срезы (оператор :) и функцию len().

languages = "Python,Java,Perl,PHP,Swift"
mean_index = len(languages) // 2

print(f"Первая половина: {languages[:mean_index]}")
print(f"Вторая половина: {languages[mean_index:]}")

Вывод:

Первая половина: Python,Java,P
Вторая половина: erl,PHP,Swift

Значение languages было разбито на две равных части. Для работы был использован оператор целочисленного деления.

Вывод

Вот что вы узнали:

  • Функция split разбивает строку на подстроки по разделителю.
  • Параметр maxsplit позволяет указать максимально количество разделений.
  • Если разделитель не задать, то по умолчанию будет выбрано значение пробела.
  • Срезы используются для деления строк на равные части.

Обучение с трудоустройством

Появились вопросы? Задайте на Яндекс.Кью

У сайта есть сообщество на Кью >> Python Q <<. Там я, эксперты и участники отвечаем на вопросы по python и программированию.

Максим
Я создал этот блог в 2018 году, чтобы распространять полезные учебные материалы, документации и уроки на русском. На сайте опубликовано множество статей по основам python и библиотекам, уроков для начинающих и примеров написания программ.
Мои контакты: Почта
admin@pythonru.comAlex Zabrodin2018-10-26OnlinePython, Programming, HTML, CSS, JavaScript