Функции str.split и rsplit() в Python
Функция split() в Python используется для разделения строки на список строк на основе разделителя.
В качестве разделителя используется аргумент sep. Если строка содержит последовательные разделители, возвращается пустая строка. Аргумент-разделитель также может состоять из нескольких символов.
Если разделитель не указан или None, то в качестве разделителя рассматриваются пробелы. В этом случае пустая строка не будет возвращена, если в начале или в конце есть пробелы. Кроме того, несколько пробелов будут рассматриваться, как один разделитель.
Если предоставляется maxsplit, выполняется не более maxsplit (таким образом, список будет содержать не более maxsplit + 1 элементов). Если maxsplit не указан или -1, то количество разделений не ограничено, и все возможные разделения возвращаются в списке.
Пример
Давайте посмотрим на простой пример, где строка будет разделена на список на основе указанного разделителя.
split() с maxsplit
Обратите внимание, что в возвращенном списке всего 2 элемента, строка была разделена только один раз.
sep не указан или None
Начальные и конечные пробелы игнорируются в возвращаемом списке. Кроме того, последовательные пробелы также считаются одним разделителем.
Как разбить строку на символы python
data = «GeeksforGeeks, is_an-awesome ! website»
print ( «The original string is : » + data)
print ( «The list after performing split functionality : » + str (res))
The original string is : GeeksforGeeks, is_an-awesome ! website
The list after performing split functionality : [‘GeeksforGeeks’, ‘is’, ‘an’, ‘awesome ‘, ‘ website’]
newData = «GeeksforGeeks, is_an-awesome ! app + too»
Использование re.findall ()
data = «This, is — another : example?!»
print ( «The original string is : » + data)
print ( «The list after performing split functionality : » + str (res))
The original string is : This, is – another : example?!
The list after performing split functionality : [‘This’, ‘is’, ‘another’, ‘example’]
testData = «This, is — underscored _ example?!»
Использование replace () и split ()
print ( «The original string is : » + data)
print ( «The list after performing split functionality : » + str (res))
The original string is : Let’s_try, this now
The list after performing split functionality : [“Let’s”, ‘try’, ‘this’, ‘now’]
Полезные методы для работы со строками#
При автоматизации очень часто надо будет работать со строками, так как конфигурационный файл, вывод команд и отправляемые команды — это строки.
Знание различных методов (действий), которые можно применять к строкам, помогает более эффективно работать с ними.
Строки — неизменяемый тип данных. Поэтому все методы, которые преобразуют строку, возвращают новую строку, а исходная строка остается неизменной.
Метод join#
Метод join собирает список строк в одну строку с разделителем, который указан перед join:
Методы upper, lower, swapcase, capitalize#
Методы upper() , lower() , swapcase() , capitalize() выполняют преобразование регистра строки:
Очень важно обращать внимание на то, что часто методы возвращают преобразованную строку. И, значит, надо не забыть присвоить ее какой-то переменной (можно той же).
Метод count#
Метод count() используется для подсчета того, сколько раз символ или подстрока встречаются в строке:
Метод find#
Методу find() можно передать подстроку или символ, и он покажет, на какой позиции находится первый символ подстроки (для первого совпадения):
Если совпадение не найдено, метод find возвращает -1 .
Методы startswith, endswith#
Проверка на то, начинается или заканчивается ли строка на определенные символы (методы startswith() , endswith() ):
Методам startswith() и endswith() можно передавать несколько значений (обязательно как кортеж):
Метод replace#
Замена последовательности символов в строке на другую последовательность (метод replace() ):
Метод strip#
Часто при обработке файла файл открывается построчно. Но в конце каждой строки, как правило, есть какие-то спецсимволы (а могут быть и в начале). Например, перевод строки.
Для того, чтобы избавиться от них, очень удобно использовать метод strip() :
По умолчанию метод strip() убирает пробельные символы. В этот набор символов входят: \t\n\r\f\v
Методу strip можно передать как аргумент любые символы. Тогда в начале и в конце строки будут удалены все символы, которые были указаны в строке:
Метод strip() убирает спецсимволы и в начале, и в конце строки. Если необходимо убрать символы только слева или только справа, можно использовать, соответственно, методы lstrip() и rstrip() .
Метод split#
Метод split() разбивает строку на части, используя как разделитель какой-то символ (или символы) и возвращает список строк:
В примере выше string1.split() разбивает строку по пробельным символам и возвращает список строк. Список записан в переменную commands.
По умолчанию в качестве разделителя используются пробельные символы (пробелы, табы, перевод строки), но в скобках можно указать любой разделитель:
В списке commands последний элемент это строка с вланами, поэтому используется индекс -1. Затем строка разбивается на части с помощью split commands[-1].split(‘,’) . Так как, как разделитель указана запятая, получен такой список [’10’, ’20’, ’30’, ‘100-200’] .
Пример разделения адреса на октеты:
Полезная особенность метода split с разделителем по умолчанию — строка не только разделяется в список строк по пробельным символам, но пробельные символы также удаляются в начале и в конце строки:
У метода split() есть ещё одна хорошая особенность: по умолчанию метод разбивает строку не по одному пробельному символу, а по любому количеству. Это будет, например, очень полезным при обработке команд show:
А вот так выглядит разделение той же строки, когда один пробел используется как разделитель:
Как разбить строку на символы python
Рассмотрим основные методы строк, которые мы можем применить в приложениях:
isalpha() : возвращает True, если строка состоит только из алфавитных символов
islower() : возвращает True, если строка состоит только из символов в нижнем регистре
isupper() : возвращает True, если все символы строки в верхнем регистре
isdigit() : возвращает True, если все символы строки — цифры
isnumeric() : возвращает True, если строка представляет собой число
startswith(str) : возвращает True, если строка начинается с подстроки str
endswith(str) : возвращает True, если строка заканчивается на подстроку str
lower() : переводит строку в нижний регистр
upper() : переводит строку в вехний регистр
title() : начальные символы всех слов в строке переводятся в верхний регистр
capitalize() : переводит в верхний регистр первую букву только самого первого слова строки
lstrip() : удаляет начальные пробелы из строки
rstrip() : удаляет конечные пробелы из строки
strip() : удаляет начальные и конечные пробелы из строки
ljust(width) : если длина строки меньше параметра width, то справа от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по левому краю
rjust(width) : если длина строки меньше параметра width, то слева от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по правому краю
center(width) : если длина строки меньше параметра width, то слева и справа от строки равномерно добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по центру
find(str[, start [, end]) : возвращает индекс подстроки в строке. Если подстрока не найдена, возвращается число -1
replace(old, new[, num]) : заменяет в строке одну подстроку на другую
split([delimeter[, num]]) : разбивает строку на подстроки в зависимости от разделителя
partition(delimeter) : разбивает строку по разделителю на три подстроки и возвращает кортеж из трех элементов — подстрока до разделителя, разделитель и подстрока после разделителя
join(strs) : объединяет строки в одну строку, вставляя между ними определенный разделитель
Например, если мы ожидаем ввод с клавиатуры числа, то перед преобразованием введенной строки в число можно проверить, с помощью метода isnumeric() введено ли в действительности число, и если так, то выполнить операцию преобразования:
Проверка, начинается или оканчивается строка на определенную подстроку:
Удаление пробелов в начале и в конце строки:
Дополнение строки пробелами и выравнивание:
Поиск в строке
Для поиска подстроки в строке в Python применяется метод find() , который возвращает индекс первого вхождения подстроки в строку и имеет три формы:
find(str) : поиск подстроки str ведется с начала строки до ее конца
find(str, start) : параметр start задает начальный индекс, с которого будет производиться поиск
find(str, start, end) : параметр end задает конечный индекс, до которого будет идти поиск
Если подстрока не найдена, метод возвращает -1:
Замена в строке
Для замены в строке одной подстроки на другую применяется метод replace() :
replace(old, new) : заменяет подстроку old на new
replace(old, new, num) : параметр num указывает, сколько вхождений подстроки old надо заменить на new. По умолчанию num равно -1, что соответствует первой версии метода и приводит к замене всех вхождений.
Разделение на подстроки
Метод split() разбивает строку на список подстрок в зависимости от разделителя. В качестве разделителя может выступать любой символ или последовательность символов. Данный метод имеет следующие формы:
split() : в качестве разделителя используется пробел
split(delimeter) : в качестве разделителя используется delimeter
split(delimeter, num) : параметр num указывает, сколько вхождений delimeter используется для разделения. Оставшаяся часть строки добавляется в список без разделения на подстроки
Еще один метод — partition() разбивает строку по разделителю на три подстроки и возвращает кортеж из трех элементов — подстрока до разделителя, разделитель и подстрока после разделителя:
Если разделитель с строке не найден, то возвращается кортеж с одной строкой.
Соединение строк
При рассмотрении простейших операций со строками было показано, как объединять строки с помощью операции сложения. Другую возможность для соединения строк представляет метод join() : он объединяет список строк. Причем текущая строка, у которой вызывается данный метод, используется в качестве разделителя:
Вместо списка в метод join можно передать простую строку, тогда разделитель будет вставляться между символами этой строки: