Строки в 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. Чтобы ознакомиться со всеми методами можете почитать официальную документацию.