Язык программирования Python

30 строковых методов в Python с примерами.

Тип данных str – это встроенный класс, экземпляры которого включают несколько методов ─ более тридцати ─ для разбора, преобразования, разделения и соединения содержимого строк.

В этой небольшой статье мы подробно остановимся на тех, которые считаем наиболее актуальными, чтобы они всегда были под рукой.

Методы анализа

Метод count() возвращает количество повторений заданного набора символов.

s = "Привет мир!" result = s.count("Привет") print(result)
Code language: PHP (php)
1

Методы find() и index() возвращают местоположение (начиная с нуля), в котором находится указанный аргумент.

s = "Привет мир!" result1 = s.find("мир") result2 = s.index("мир")
Code language: JavaScript (javascript)
result1 - 7 result2 - 7

Они отличаются тем, что последний выдает ValueError, если аргумент не найден, а первый возвращает -1.

s = "Привет мир!" result1 = s.find("Иван") print('result1 - ', result1)
Code language: PHP (php)
result1 - -1
s = "Привет мир!" result2 = s.index("Иван") print('result2 - ', result2)
Code language: PHP (php)
ValueError: substring not found
Code language: HTTP (http)

В обоих методах поиск происходит слева направо. Для поиска набора символов с конца используйте rfind() и rindex() аналогичным образом.

s = "C:/python36/python.exe" result1 = s.find("/") result2 = s.rfind("/") print('result1:', result1) print('result2:', result2)
Code language: PHP (php)
result1: 2 result2: 11
Code language: HTTP (http)

startswith() и endswith() указывают, начинается или заканчивается рассматриваемая строка набором символов, переданных в качестве аргумента, и возвращают соответственно True или False.

s = "Привет мир!" result1 = s.startswith("Привет") result2 = s.endswith("мир!") result3 = s.endswith("Иван") print('result1:', result1) print('result2:', result2) print('result3:', result3)
Code language: PHP (php)
result1: True result2: True result3: False
Code language: PHP (php)

Оба метода предпочтительнее, чем вариант с использованием slicing.

# Предпочтительнее startswith(). >>> s[:4] == "Привет" True
Code language: PHP (php)

Методы isdigit(), isnumeric() и isdecimal() определяют, являются ли все символы в строке цифрами, числами или десятичными числами.

print("1234".isnumeric()) print("1234".isdecimal()) print("abc123".isdigit())
Code language: PHP (php)
True True False
Code language: PHP (php)

Хотя эти определения выглядят априори похожими, это не так.

Первая, isdigit(), рассматривает символы, которые могут образовывать числа, включая символы, соответствующие восточным языкам. isnumeric() шире, поскольку она также включает символы с числовой коннотацией, которые не обязательно являются цифрами (например, дробь).

Последняя, isdecimal(), является наиболее ограниченной, так как учитывает только десятичные числа, то есть образованные цифрами от 0 до 9.

Следующие шесть функций анализа не требуют особых пояснений.

# Определяет, являются ли все символы буквенно-цифровыми. >>> "абв123".isalnum() True # Определяет, все ли символы являются алфавитными. >>> "абвгд".isalpha() True >>> "абв123".isalpha() False # Определяет, все ли буквы являются строчными. >>> "абвгд".islower() True # Заглавные буквы. >>> "АБВГД".isupper() True # Определяет, содержит ли строка все печатаемые символы. >>> "Привет \t мир!".isprintable() False # Определяет, содержит ли строка только пробелы. >>> "Привет мир!".isspace() False >>> " ".isspace() True
Code language: PHP (php)

Методы трансформации

Помните, что строки неизменяемы; поэтому все приведенные ниже методы не действуют на исходный объект, а возвращают новый.

capitalize() возвращает строку с заглавной первой буквой.

>>> "привет мир!".capitalize() 'Привет мир!'
Code language: JavaScript (javascript)

encode() кодирует строку с помощью указанной кодировки и возвращает экземпляр типа bytes.

>>> "Привет мир!".encode("utf-8") b'\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82 \xd0\xbc\xd0\xb8\xd1\x80!'
Code language: JavaScript (javascript)

Методы center(), ljust() и rjust() выравнивают строку по центру, слева или справа соответственно.

Они принимают один аргумент – количество символов, на которое будет происходить выравнивание.

>>> "Привет".center(10) ' Привет ' >>> "Привет".ljust(10) 'Привет ' >>> "Привет".rjust(10) ' Привет'
Code language: JavaScript (javascript)

Эти методы особенно полезны при печати в табличной форме, чтобы таблица оставалась выровненной.

Второй аргумент указывает, каким символом заполнять пустые пробелы (по умолчанию – пробел).

>>> "Привет".center(10, "*") '**Привет**'
Code language: JavaScript (javascript)

lower() и upper() возвращают копию строки со всеми буквами в нижнем или верхнем регистре, в зависимости от ситуации.

>>> "Привет мир!".lower() 'привет мир!' >>> "Привет мир!".upper() 'ПРИВЕТ МИР!'
Code language: JavaScript (javascript)

swapcase(), с другой стороны, меняет прописные буквы на строчные и наоборот.

>>> "Привет мир!".swapcase() 'пРИВЕТ МИР!'
Code language: JavaScript (javascript)

Функции strip(), lstrip() и rstrip() удаляют пробельные символы, предшествующие и/или следующие за строкой.

s = " Привет мир! " result1 = s.strip() result2 = s.rstrip() result3 = s.lstrip() print('result1:', result1) print('result2:', result2) print('result3:', result3)
Code language: PHP (php)
result1: Привет мир! result2: Привет мир! result3: Привет мир!
Code language: HTTP (http)

Наконец, метод replace() ─ широко используемый метод ─ заменяет одну строку на другую.

s = "Привет мир!" result = s.replace("мир", "world") print(result)
Code language: PHP (php)
Привет world!

Методы разделения и соединения

Наиболее часто используемым методом разделения строки по символу-разделителю является split(), который по умолчанию использует пробельные символы и перевод строки.

>>> "Привет мир!\nПривет мир!".split() ['Привет', 'мир!', 'Привет', 'мир!']
Code language: CSS (css)

Разделитель может быть указан в качестве аргумента.

>>> "Привет мир!\nПривет мир!".split(' ') ['Привет', 'мир!\nПривет', 'мир!']
Code language: JavaScript (javascript)

Или разделять только в соответствии с переводами строк:

#Аналогично split("\n"). >>> "Привет мир!\nПривет мир!".splitlines() ['Привет мир!', 'Привет мир!']
Code language: CSS (css)

Второй аргумент в split() указывает, какое максимальное количество разбиений может произойти (по умолчанию -1, чтобы указать неограниченное количество).

>>> "Привет мир! Привет мир!".split(' ', 2) ['Привет', 'мир!', 'Привет мир!']
Code language: JavaScript (javascript)

Второй метод разделения – partition(), который возвращает кортеж из трех элементов: блок символов перед первым вхождением разделителя, сам разделитель и блок после него.

s = 'Привет мир. Привет мир.' result = s.partition(' ') print(result)
Code language: PHP (php)
('Привет', ' ', 'мир. Привет мир.')
Code language: JavaScript (javascript)

rpartition() работает аналогично, но поиск ведется справа налево.

s = 'Привет мир. Привет мир.' result = s.rpartition(' ') print(result)
Code language: PHP (php)
('Привет мир. Привет', ' ', 'мир.')
Code language: JavaScript (javascript)

Наконец, метод join() ─ чрезвычайно полезный метод, который нужно вызывать из строки, выступающей в качестве разделителя, чтобы объединить элементы списка в одну результирующую строку.

>>> " ".join(["Привет", "мир!"]) 'Привет мир!' >>> ", ".join(["C", "C++", "Python", "Java"]) 'C, C++, Python, Java'
Code language: JavaScript (javascript)

Как вы видите, split() и join() прямо противоположны.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *