Строки — отличный инструмент в руках 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?
Этот параметр помогает задать максимальное число разделений. Разделить стоку можно, передав значение этого параметра. Например, если разделителем выступает символ пробела, а значение maxsplit
— 1
,
то строка будет разделена максимум на 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
позволяет указать максимально количество разделений. - Если разделитель не задать, то по умолчанию будет выбрано значение пробела.
- Срезы используются для деления строк на равные части.