0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>19 июл 2024</li>
2
<ul><li>19 июл 2024</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Безжалостно кромсаем строки в Python.</p>
4
</ul><p>Безжалостно кромсаем строки в Python.</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6
<p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
6
<p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
7
<p>Строки в Python бывают очень длинными и часто содержат много лишних данных. Например, служебную информацию в лог-файлах приложений или ошибки пользовательского ввода. Чтобы получить из строки то, что действительно нужно, иногда её лучше разделить на части. Сделать это можно с помощью функции split(). Разбираем её синтаксис и возможности в этой статье.</p>
7
<p>Строки в Python бывают очень длинными и часто содержат много лишних данных. Например, служебную информацию в лог-файлах приложений или ошибки пользовательского ввода. Чтобы получить из строки то, что действительно нужно, иногда её лучше разделить на части. Сделать это можно с помощью функции split(). Разбираем её синтаксис и возможности в этой статье.</p>
8
<p><strong>Содержание</strong></p>
8
<p><strong>Содержание</strong></p>
9
<ul><li><a>Что делает функция split() в Python</a></li>
9
<ul><li><a>Что делает функция split() в Python</a></li>
10
<li><a>Как разделить строку в Python</a></li>
10
<li><a>Как разделить строку в Python</a></li>
11
</ul><ul><li><a>По пробелу</a></li>
11
</ul><ul><li><a>По пробелу</a></li>
12
<li><a>По запятой или по другому символу</a></li>
12
<li><a>По запятой или по другому символу</a></li>
13
<li><a>По последовательности символов</a></li>
13
<li><a>По последовательности символов</a></li>
14
<li><a>По нескольким разделителям</a></li>
14
<li><a>По нескольким разделителям</a></li>
15
<li><a>Ограничение количества разбиений</a></li>
15
<li><a>Ограничение количества разбиений</a></li>
16
</ul><p>split() - функция в Python, которую используют для разделения строки на несколько частей. Она полезна, когда надо проанализировать текст или, например, получить данные из CSV-файлов и логов.</p>
16
</ul><p>split() - функция в Python, которую используют для разделения строки на несколько частей. Она полезна, когда надо проанализировать текст или, например, получить данные из CSV-файлов и логов.</p>
17
<p>Базовый синтаксис функции split() выглядит так:</p>
17
<p>Базовый синтаксис функции split() выглядит так:</p>
18
str.split(sep=None, maxsplit=--1)<p>В примере выше:</p>
18
str.split(sep=None, maxsplit=--1)<p>В примере выше:</p>
19
<ul><li>sep - разделитель, по которому разбивается исходная строка. По умолчанию или при указании None разделителями будут считаться любые пробельные символы (пробел, перевод строки, табуляция и другие).</li>
19
<ul><li>sep - разделитель, по которому разбивается исходная строка. По умолчанию или при указании None разделителями будут считаться любые пробельные символы (пробел, перевод строки, табуляция и другие).</li>
20
<li>maxsplit - параметр, который определяет максимальное количество разбиений. По умолчанию (или если указано -1) строка разбивается полностью на все возможные подстроки.</li>
20
<li>maxsplit - параметр, который определяет максимальное количество разбиений. По умолчанию (или если указано -1) строка разбивается полностью на все возможные подстроки.</li>
21
</ul><p>Рассмотрим способы разделения строк с помощью функции split().</p>
21
</ul><p>Рассмотрим способы разделения строк с помощью функции split().</p>
22
<p>Самый частый кейс использования split () - разделение строки по пробелу. Для этого при вызове функции не надо указывать разделитель sep. Для примера создадим строку с перечислением имён через запятую, а после этого разделим её по пробелу и выведем результат в консоль с помощью print():</p>
22
<p>Самый частый кейс использования split () - разделение строки по пробелу. Для этого при вызове функции не надо указывать разделитель sep. Для примера создадим строку с перечислением имён через запятую, а после этого разделим её по пробелу и выведем результат в консоль с помощью print():</p>
23
# Строка, которую нужно разделить str = 'Коля, Даша, Инна, Дима, Рома, Наташа' print(str.split()) # Результат: # ['Коля,', 'Даша,', 'Инна,', 'Дима,', 'Рома,', 'Наташа']<p>В итоге мы получили список подстрок, но важно отметить, что запятые остались рядом с именами. Это происходит из-за того, что мы разделяли строку по пробелам, а запятые - такие же символы, как буквы. Поэтому функция split() не удалила их.</p>
23
# Строка, которую нужно разделить str = 'Коля, Даша, Инна, Дима, Рома, Наташа' print(str.split()) # Результат: # ['Коля,', 'Даша,', 'Инна,', 'Дима,', 'Рома,', 'Наташа']<p>В итоге мы получили список подстрок, но важно отметить, что запятые остались рядом с именами. Это происходит из-за того, что мы разделяли строку по пробелам, а запятые - такие же символы, как буквы. Поэтому функция split() не удалила их.</p>
24
<p>Если использовать в строке символ табуляции (\t) и перевода строки (\n), то результат не изменится. Всё из-за того, что табуляция и перевод строки относятся к пробельным символам:</p>
24
<p>Если использовать в строке символ табуляции (\t) и перевода строки (\n), то результат не изменится. Всё из-за того, что табуляция и перевод строки относятся к пробельным символам:</p>
25
# Строка, которую нужно разделить str = 'Коля\nДаша\tИнна, Дима\nРома\nНаташа' print(str.split()) # Результат: #['Коля', 'Даша', 'Инна,', 'Дима', 'Рома', 'Наташа']<p>Для разделения строки по запятой или любому другому символу в качестве аргумента функции split() можно указать разделитель. Для примера создадим строку с названиями животных на английском языке и разделим её по запятой. В итоге получим список, состоящий из отдельных слов:</p>
25
# Строка, которую нужно разделить str = 'Коля\nДаша\tИнна, Дима\nРома\nНаташа' print(str.split()) # Результат: #['Коля', 'Даша', 'Инна,', 'Дима', 'Рома', 'Наташа']<p>Для разделения строки по запятой или любому другому символу в качестве аргумента функции split() можно указать разделитель. Для примера создадим строку с названиями животных на английском языке и разделим её по запятой. В итоге получим список, состоящий из отдельных слов:</p>
26
# Строка, которую нужно разделить str = 'bear,pig,rabbit,donkey,owl,tiger,kangaroo' print(str.split(',')) # Результат: # ['bear', 'pig', 'rabbit', 'donkey', 'owl', 'tiger', 'kangaroo']<p>В качестве разделителя можно использовать любые другие символы. В примере ниже мы разделяем строку по символу звёздочки *. Если разделитель встречается несколько раз подряд, то Python создаёт пустые строки:</p>
26
# Строка, которую нужно разделить str = 'bear,pig,rabbit,donkey,owl,tiger,kangaroo' print(str.split(',')) # Результат: # ['bear', 'pig', 'rabbit', 'donkey', 'owl', 'tiger', 'kangaroo']<p>В качестве разделителя можно использовать любые другие символы. В примере ниже мы разделяем строку по символу звёздочки *. Если разделитель встречается несколько раз подряд, то Python создаёт пустые строки:</p>
27
# Строка, которую нужно разделить str = 'abc*de***frrd*18' print(str.split('*')) # Результат: # ['abc', 'de', '', '', 'frrd', '18']<p>Иногда строки содержат в себе уже готовые разделители в виде комбинаций символов. В таком случае функции split() можно передать последовательность.</p>
27
# Строка, которую нужно разделить str = 'abc*de***frrd*18' print(str.split('*')) # Результат: # ['abc', 'de', '', '', 'frrd', '18']<p>Иногда строки содержат в себе уже готовые разделители в виде комбинаций символов. В таком случае функции split() можно передать последовательность.</p>
28
<p>В примере ниже есть строка text с данными анкеты пользователя, поля которой разделены с помощью двойного символа решётки (##). Передадим эту последовательность в split() и получим на выходе список подстрок в формате "ключ - значение":</p>
28
<p>В примере ниже есть строка text с данными анкеты пользователя, поля которой разделены с помощью двойного символа решётки (##). Передадим эту последовательность в split() и получим на выходе список подстрок в формате "ключ - значение":</p>
29
# Строка, которую нужно разделить text = "имя: Александр##фамилия: Кузнецов##возраст:30##город: Москва" # Использование split() для разделения строки parts = text.split("##") print(parts) # Вывод результата # ['имя: Александр', 'фамилия: Кузнецов', 'возраст:30', 'город: Москва']<p>С помощью регулярных выражений строку можно разбить по нескольким символам или последовательностям одновременно. Например, если надо выполнить разделение по запятой, точке, вопросительному знаку, пробелу и переносу строки, то следует передать в split() регулярное выражение r'[,.?\n ]+', в котором:</p>
29
# Строка, которую нужно разделить text = "имя: Александр##фамилия: Кузнецов##возраст:30##город: Москва" # Использование split() для разделения строки parts = text.split("##") print(parts) # Вывод результата # ['имя: Александр', 'фамилия: Кузнецов', 'возраст:30', 'город: Москва']<p>С помощью регулярных выражений строку можно разбить по нескольким символам или последовательностям одновременно. Например, если надо выполнить разделение по запятой, точке, вопросительному знаку, пробелу и переносу строки, то следует передать в split() регулярное выражение r'[,.?\n ]+', в котором:</p>
30
<ul><li>квадратные скобки [] используются для указания набора символов, каждый из которых может быть разделителем;</li>
30
<ul><li>квадратные скобки [] используются для указания набора символов, каждый из которых может быть разделителем;</li>
31
<li>внутри скобок перечислены символы-разделители: запятая ,, точка ., вопросительный знак ?, перенос строки \n, пробел ‘ ’;</li>
31
<li>внутри скобок перечислены символы-разделители: запятая ,, точка ., вопросительный знак ?, перенос строки \n, пробел ‘ ’;</li>
32
<li>знак + после квадратных скобок означает, что разделитель может включать один или несколько символов из набора.</li>
32
<li>знак + после квадратных скобок означает, что разделитель может включать один или несколько символов из набора.</li>
33
</ul><p>Для работы с регулярными выражениями надо импортировать модуль re, а функция разделения строки будет выглядеть как re.split(r'[,.\n? ]+', text). В качестве первого аргумента следует передать регулярное выражение, а в качестве второго - разделяемую строку:</p>
33
</ul><p>Для работы с регулярными выражениями надо импортировать модуль re, а функция разделения строки будет выглядеть как re.split(r'[,.\n? ]+', text). В качестве первого аргумента следует передать регулярное выражение, а в качестве второго - разделяемую строку:</p>
34
# Импортируем библиотеку import re #Текст, который нужно разделить text = "One,two,three,four.\nCan I have\na little more?|" # Используем re.split c регулярным выражением для разделения строки parts = re.split(r'[,.\n? ]+', text) print(parts) # Вывод результата # ['One', 'two', 'three', 'four', 'Can', 'I', 'have', 'a', 'little', 'more', '|']<p>В качестве второго аргумента в функцию split() можно передать значение параметра maxsplit, который определяет максимальное количество разделений. Например, если указать maxsplit=3, то Python разделит строку 3 раза, а в результате будет 4 (maxsplit+1) элемента. По умолчанию значение maxsplit равняется -1, а разделение происходит столько раз, сколько возможно.</p>
34
# Импортируем библиотеку import re #Текст, который нужно разделить text = "One,two,three,four.\nCan I have\na little more?|" # Используем re.split c регулярным выражением для разделения строки parts = re.split(r'[,.\n? ]+', text) print(parts) # Вывод результата # ['One', 'two', 'three', 'four', 'Can', 'I', 'have', 'a', 'little', 'more', '|']<p>В качестве второго аргумента в функцию split() можно передать значение параметра maxsplit, который определяет максимальное количество разделений. Например, если указать maxsplit=3, то Python разделит строку 3 раза, а в результате будет 4 (maxsplit+1) элемента. По умолчанию значение maxsplit равняется -1, а разделение происходит столько раз, сколько возможно.</p>
35
<p>Для примера разделим строку по слешу только два раза. После второго разделения Python вернёт оставшуюся часть строки без изменений:</p>
35
<p>Для примера разделим строку по слешу только два раза. После второго разделения Python вернёт оставшуюся часть строки без изменений:</p>
36
text = "one/two/three/four" parts = text.split('/', maxsplit=2) print(parts) # Вывод: ['one', 'two', 'three/four']<p>Функция split() - удобный инструмент для парсинга данных, чтения файлов и обработки пользовательского ввода. С её помощью можно быстро разделить строку на элементы для дальнейшей работы.</p>
36
text = "one/two/three/four" parts = text.split('/', maxsplit=2) print(parts) # Вывод: ['one', 'two', 'three/four']<p>Функция split() - удобный инструмент для парсинга данных, чтения файлов и обработки пользовательского ввода. С её помощью можно быстро разделить строку на элементы для дальнейшей работы.</p>
37
<p>Функция поддерживает разделение строк по фиксированным символам и по шаблонам с использованием регулярных выражений. Параметр maxsplit позволяет ограничить количество получаемых подстрок.</p>
37
<p>Функция поддерживает разделение строк по фиксированным символам и по шаблонам с использованием регулярных выражений. Параметр maxsplit позволяет ограничить количество получаемых подстрок.</p>
38
<p>Python для всех</p>
38
<p>Python для всех</p>
39
<p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
39
<p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
40
<p><a>Пройти бесплатно</a></p>
40
<p><a>Пройти бесплатно</a></p>
41
<a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>
41
<a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>