Методы строк в Python

Сегодня я продолжу рассказ о работе со строками в Python. В предыдущем посте я рассказывал об базовых операциях со строками. А в этом посте, я, как и обещал, буду вести речь о методах сток в Python.


Строки в Python обладают большим набором разнообразных методов. В этом посте я расскажу о наиболее популярных и полезных из них.


Методы find и rfind

Этот метод ищет подстроку в строке. В случае нахождения - возвращает первое вхождение, под которым была найдена подстрока. В случае если подстрока не найдена - возвращает -1. Значение подстроки чувствительно к реестру

string = 'Def Python. Welcome to my blog about Python'
print(string.find('y'))
print(string.find('Python'))
print(string.find('python'))
print(string.find('hello'))

5
4
-1
-1

Так же может принимать необязательные значения начала среза для поиска и конца среза для поиска.

string = 'Def Python. Welcome to my blog about Python'
print(string.find('Python', 12))
print(string.find('Well', 5, 10))

38
-1

Существует и брат близнец метода find - rfind. Работает он так же, но с одним отличаем - он возвращает последнее вхождение под которым была найдена подстрока.

string = 'Def Python. Welcome to my blog about Python'
print(string.rfind('Python'))

38


Метод index и rindex

Точно так же как и find ищет подстроку в строке и если находит - возвращает первый вхождение. Но отличается от find, тем что в случае если подстрока не найдена возвращает ValueError.

string = 'Def Python. Welcome to my blog about Python'
print(string.index('my'))
print(string.find('hello'))

24
ValueError: substring not found

Тоже самое можно сказать и про rindex. Возвращает последнее вхождение вхождение, в противном случае возвращает ValueError.


Метод join

Собирает строку из списка, с указанным разделителем. Этот метод вы будете использовать давольно часто, так что советую запомнить его хорошенько. Так же он выполняется гораздо быстрей чем если просто складывать эти строки.

sep = '/'
path = ['var', 'www', 'site']
print(sep.join(path))

var/www/site

Метод split

Этот метод, является обратным, методу join. Он разбирает строку, по указанному разделителю и возвращает результат списком.

string = 'var/www/site'
print(string.split('/'))

['var', 'www', 'site']

Метод replace

Этот метод заменяет одну строку на другую. Первым параметром - то что заменяем, а вторым то на что заменяем.

string = 'var/www/site'
print(string.replace('site', 'defpython'))

var/www/defpython

Методы lower и upper

Данные методы работают с регистром строк. Метод lower() возвращает исходную строку в нижнем регистре. А метод upper() возвращает исходную строку в верхнем регистре.

string = 'Def Python. Welcome to my blog about Python'
print(string.lower())
print(string.upper())

def python. wellcome to my blog about python
DEF PYTHON. WELLCOME TO MY BLOG ABOUT PYTHON

Метод count

Данный метод возвращает количество вхождений подстроки. Так же может быть ограничен необязательными параметрами начала и конца среза.

string = 'Def Python. Welcome to my blog about python'
print(string.count('o'))
print(string.count('o', 10))

6
5

Методы проверки

В эту группу входят такие методы как уже упоминаемый мною isdigit(), а так же isalpha(), isalnum(), islower(), isupper(), isspace(), istitle().

Так как про метод isdigit() я уже рассказывал, перейдем к остальным:

  • isalpha() возвращает True, если строка состоит только из букв, в противном случае - False
  • isalnum() возвращает True, если строка состоит из цифр и букв, в противном случае - False
  • islower() возвращает True, если строка состоит из символов в нижнем регистре, в противном случае - False
  • isupper() возвращает True, если строка состоит из символов в верхнем регистре, в противном случае - False
  • isspace() возвращает True, если строка состоит из неотображаемых символов (пробелы, перевод страницы, новая строка и т.д.), в противном случае - False
  • istitle() возвращает True, если в строке слова начинаются с заглавной буквы, в противном случае - False
string = 'defpython'
print(string.isalpha())
print(string.isalnum())
print(string.islower())
print(string.isupper())
print(string.istitle())
print(string.isspace())

True
True
True
False
False
False

Методы startswith и endswith

Эти методы так же являются методами проверки. Метод startswith проверяет, начинается ли строка с заданного шаблона. А метод endswith проверяет, заканчиваестя ли строка заданным шаблоном.

string = 'Def Python. Welcome to my blog about python'
print(string.startswith('Def'))
print(string.endswith('python'))

True
True

Методы удаления пробелов

Эта группа включает в себя методы strip(), lstrip(), rstrip(). Метод lstrip() удаляет пробельные символы в начале строки. Метод rstrip() удаляет пробельные символы в конце строки. А метод strip() удаляет пробельные символы и вначале и в конце строки.

string = '    Def Python. Welcome to my blog about python   '
print(string.lstrip())
print(string.rstrip())
print(string.strip())

"Def Python. Wellcome to my blog about python "
" Def Python. Wellcome to my blog about python"
"Def Python. Wellcome to my blog about python"

Методы работы с регистром

  • Метод capitalize() переводит первый символ строки в верхний регистр, а все остальные - в нижний.
  • Метод title() переводит первый символ каждого слова в верхний регистр, а остальные символы этого слова - в нижний.
  • Метод swapcase() меняет символы регистрами. Символы с верхним регистром становятся символами с нижним и наоборот.
string = 'Def Python. Wellcome to my blog about python'
print(string.capitalize())
print(string.title())
print(string.swapcase())

Def python. wellcome to my blog about python
Def Python. Wellcome To My Blog About Python
dEF pYTHON. wELLCOME TO MY BLOG ABOUT PYTHON

Вот собственно и все наиболее часто используемые методы строк в python. Чтобы ознакомиться со всеми методами можите почитать официальную документацию.

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