Руководство по использованию метода split в Python
Строки — отличный инструмент в руках Python-разработчиков. В Python строка —
это последовательность символов в кавычках. Она может включать числа, буквы и
символы. С помощью Python строку можно разделить на список подстрок по
определенному разделителю. Это делается с помощью метода split .
В этом материале разберем особенности его использования.
Что делает split в Python?
Функция split сканирует всю строку и разделяет ее в случае нахождения разделителя.
В строке должен быть как минимум один разделитель. Им может выступать в том
числе и символ пробела. Пробел — разделитель по умолчанию.
Если параметр на задать, то разделение будет выполнено именно по символу
пробела.
Синтаксис функции следующий:
string.split(separator*, maxsplit*)
Параметр separator — необязательный, но он позволяет задать разделитель
вручную.
Параметр maxsplit определяет максимальное количество разделений. Значение по
умолчанию — -1, будут выполнены все разделения.
Как разделить строку в Python
Метод .split() разделяет основную строку по разделителю и возвращает список строк.
Как разделить строки с помощью String.Split в C#
Метод String.Split создает массив подстрок, разбивая входную строку по одному или нескольким разделителям. Этот метод зачастую является самым простым способом разделить строку по границам слов. Он также используется для разбиения строк по другим конкретным символам или строкам.
Примеры C# в этой статье выполняются во встроенном средстве выполнения кода и на площадке Try.NET. Нажмите на кнопку Выполнить, чтобы выполнить пример в интерактивном окне. После выполнения кода вы можете изменить его и выполнить измененный код, снова нажав на кнопку Выполнить. Либо в интерактивном окне выполняется измененный код, либо, если компиляция завершается с ошибкой, в интерактивном окне отображаются все сообщения об ошибках компилятора C#.
Следующий код разбивает обычную фразу на массив строк для каждого слова.
string phrase = "The quick brown fox jumps over the lazy dog."; string[] words = phrase.Split(' '); foreach (var word in words) < System.Console.WriteLine($">"); >
Каждый экземпляр знака разделения создает значение в возвращаемом массиве. Последовательные знаки разделения создают пустую строку в виде значения в возвращаемом массиве. В следующем примере показано создание пустой строки с использованием символа пробела в качестве разделителя.
string phrase = "The quick brown fox jumps over the lazy dog."; string[] words = phrase.Split(' '); foreach (var word in words) < System.Console.WriteLine($">"); >
Такое поведение упрощает работу с такими форматами, как файл данных с разделителями-запятыми (CSV), которые представляют табличные данные. Идущие подряд запятые представляют пустой столбец.
Чтобы исключить из возвращаемого массива все пустые строки, можно передать необязательный параметр StringSplitOptions.RemoveEmptyEntries. Для более сложной обработки возвращенной коллекции можно использовать LINQ, чтобы управлять результирующей последовательностью.
String.Split может использовать несколько знаков разделения. В следующем примере используются пробелы, запятые, точки, двоеточия и вкладки в качестве разделительных символов, которые передаются Split в массив. Цикл в конце кода отображает каждое из слов в возвращенном массиве.
char[] delimiterChars = < ' ', ',', '.', ':', '\t' >; string text = "one\ttwo three:four,five six seven"; System.Console.WriteLine($"Original text: ''"); string[] words = text.Split(delimiterChars); System.Console.WriteLine($" words in text:"); foreach (var word in words) < System.Console.WriteLine($">"); >
Последовательные экземпляры любого разделителя создают пустую строку в выходном массиве:
char[] delimiterChars = < ' ', ',', '.', ':', '\t' >; string text = "one\ttwo :,five six seven"; System.Console.WriteLine($"Original text: ''"); string[] words = text.Split(delimiterChars); System.Console.WriteLine($" words in text:"); foreach (var word in words) < System.Console.WriteLine($">"); >
Метод String.Split может принимать массив строк (в этом случае в качестве разделителей при анализе целевой строки используются последовательности символов, а не отдельные символы).
string[] separatingStrings = < "; string text = "one'"); string[] words = text.Split(separatingStrings, System.StringSplitOptions.RemoveEmptyEntries); System.Console.WriteLine($" substrings in text:"); foreach (var word in words)
См. также
- Извлечение элементов из строки
- Руководство по программированию на C#
- Строки
- Регулярные выражения .NET
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Как разделить строку по пробелам python
Такую задачу всегда можно решить с помощью цикла. Но в Python есть метод .split() . Именно его обычно используют для разделения строки на части. В качестве разделителя можно использовать любой символ: пробел, запятую, перенос строки ( \n ) и т.д.
На выходе мы получим список строк:
str = 'how are you' str.split(' ') # ['how', 'are', 'you']
Пробел как разделитель можно не указывать. Метод .split() будет использовать параметр по умолчанию:
str = 'how are you?' str.split() # ['how', 'are', 'you']
Иногда перед тем, как разделить строку, необходимо избавиться от лишних знаков препинания:
str = 'Hi, how are you?' str[:-1].replace(',', '').split() # ['Hi', 'how', 'are', 'you']
String.prototype.split()
Метод split() разбивает объект String на массив строк путём разделения строки указанной подстрокой.
Синтаксис
str.split([separator[, limit]])
Параметры
Необязательный параметр. Указывает символы, используемые в качестве разделителя внутри строки. Параметр separator может быть как строкой, так и регулярным выражением. Если параметр опущен, возвращённый массив будет содержать один элемент со всей строкой. Если параметр равен пустой строке, строка str будет преобразована в массив символов.
Необязательный параметр. Целое число, определяющее ограничение на количество найденных подстрок. Метод split() всё равно разделяет строку на каждом сопоставлении с разделителем separator , но обрезает возвращаемый массив так, чтобы он содержал не более limit элементов.
Описание
Метод split() возвращает новый массив.
Если разделитель separator найден, он удаляется из строки, а подстроки возвращаются в массиве. Если разделитель опущен, массив будет содержать только один элемент, состоящий из всей строки. Если разделитель является пустой строкой, строка str будет преобразована в массив символов.
Если разделитель является регулярным выражением, содержащим подгруппы, то каждый раз при сопоставлении с разделителем, результаты (включая те, что не определены) захвата подгруппы будут помещаться внутрь выходного массива. Однако, не все браузеры поддерживают эту возможность.
Примечание: Если строка является пустой строкой, метод split() вернёт массив, состоящий из одной пустой строки, а не пустой массив.
Примеры
Пример: использование метода split()
В следующем примере определяется функция, которая разбивает строку на массив строк, используя указанный разделитель. После разбиения строки, функция отображает сообщения, показывающие оригинальную строку (до разбиения), используемый разделитель, количество элементов в массиве и сами эти элементы.
function splitString(stringToSplit, separator) var arrayOfStrings = stringToSplit.split(separator); console.log('Оригинальная строка: "' + stringToSplit + '"'); console.log('Разделитель: "' + separator + '"'); console.log( "Массив содержит " + arrayOfStrings.length + " элементов: " + arrayOfStrings.join(" / "), ); > // Строчка из «Бури» Шекспира. Перевод Михаила Донского. var tempestString = "И как хорош тот новый мир, где есть такие люди!"; var monthString = "Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек"; var space = " "; var comma = ","; splitString(tempestString, space); splitString(tempestString); splitString(monthString, comma);
Пример сгенерирует следующий вывод:
Оригинальная строка: "И как хорош тот новый мир, где есть такие люди!" Разделитель: " " Массив содержит 10 элементов: И / как / хорош / тот / новый / мир, / где / есть / такие / люди! Оригинальная строка: "И как хорош тот новый мир, где есть такие люди!" Разделитель: "undefined" Массив содержит 1 элементов: И как хорош тот новый мир, где есть такие люди! Оригинальная строка: "Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек" Разделитель: "," Массив содержит 12 элементов: Янв / Фев / Мар / Апр / Май / Июн / Июл / Авг / Сен / Окт / Ноя / Дек
Пример: удаление пробелов из строки
В следующем примере метод split() ищет 0 или более пробелов, за которыми следует точка с запятой, за которой снова следуют 0 или более пробелов, и, если этот шаблон найден, удаляет пробелы из строки. Переменная nameList является массивом, возвращённым в результате работы метода split() .
var names = "Гарри Трамп ;Фрэд Барни; Хелен Ригби ; Билл Абель ;Крис Ханд "; console.log(names); var re = /\s*;\s*/; var nameList = names.split(re); console.log(nameList);
Пример напечатает две строки; на первой строке напечатана оригинальная строчка, а на второй — получившийся массив.
Гарри Трамп ;Фред Барни; Хелен Ригби ; Билл Абель ;Крис Ханд Гарри Трамп,Фред Барни,Хелен Ригби,Билл Абель,Крис Ханд
Пример: возврат ограниченного числа подстрок
В следующем примере метод split() ищет 0 или более пробелов в строке и возвращает первые три найденных подстроки.
var myString = "Привет, мир. Как дела?"; var splits = myString.split(" ", 3); console.log(splits);
Вывод скрипта будет следующим:
,,мир.,Как
Пример: захват подгрупп
Если параметр separator содержит подгруппы, сопоставившиеся результаты также будут присутствовать в возвращённом массиве.
var myString = "Привет 1 мир. Предложение номер 2."; var splits = myString.split(/(\d)/); console.log(splits);
Вывод скрипта будет следующим:
,1, мир. Предложение номер ,2,.
Пример: обращение строки при помощи метода split()
var str = "фывапролд"; var strReverse = str.split("").reverse().join(""); // 'длорпавыф' // split() возвращает массив, к которому применяются методы reverse() и join()
Бонус: используя оператор === (en-US), можно проверить, являлась ли строка палиндромом.
Спецификации
| Specification |
|---|
| ECMAScript Language Specification # sec-string.prototype.split |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
- String.prototype.charAt()
- String.prototype.indexOf()
- String.prototype.lastIndexOf()
- Array.prototype.join()
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 20 янв. 2024 г. by MDN contributors.
Your blueprint for a better internet.
MDN
Support
- Product help
- Report an issue
Our communities
Developers
- Web Technologies
- Learn Web Development
- MDN Plus
- Hacks Blog
- Website Privacy Notice
- Cookies
- Legal
- Community Participation Guidelines
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2024 by individual mozilla.org contributors. Content available under a Creative Commons license.