Python: строковые методы

Автор: | 15/10/2014
 

PythonВ Python  у объектов типа string имеется огромное количество методов для работы с ними. Они могут быть сгруппированы в два различных типа: первый – методы, которые модифицируют объект и создают новый, и второй – методы, которые предоставляют информацию об объекте.

Строковые методы для изменения строки

string.capitalize() – изменяет строку, переводя все ЗАГЛАВНЫЕ буквы в строчные, кроме первой:

>>> string = 'This Is Some string'
>>> print(string.capitalize())
This is some string

string.center(ширина, символ) – создаёт новую строку, окружённую символ (по-умолчанию – пробел) на ширина в точках:

>>> string = 'This Is Some string'
>>> print(string.center(100))
                                        This Is Some string
>>> print(string.center(100, '.'))
........................................This Is Some string.........................................

string.encode(кодировка) – сменить кодировку символов на кодировка (по-умолчанию – ASCII), не работает в Python 2.6 и более ранних версиях (вызывает исключение TypeError: encode() takes no keyword arguments):

>>> string = 'This Is Some string'
>>> print(string.encode(encoding='base64'))
VGhpcyBJcyBTb21lIHN0cmluZw==

string.decode(кодировка) – то же, но наоборот:

>>> string = 'VGhpcyBJcyBTb21lIHN0cmluZw=='
>>> print(string.decode(encoding='base64'))
>>> This Is Some string

string.expandtabs(количество) – меняет количество символов в табуляции, если не указано количество – используется по-умолчанию 8:

>>> string = 'tThis Is Some stringt'
>>> print(string)
        This Is Some string

>>> print(string.expandtabs(2))
  This Is Some string

>>> print(string.expandtabs())
        This Is Some string

string.join(последовательность) – возвращает строку, в которой элементы последовательности разделены строкой string:

>>> sequence = (' - ', ' - ', ' - ')
>>> string = 'This Is Some string'
>>> print(string.join(sequence))
 - This Is Some string - This Is Some string -

string.ljust(количество, символы) – сдвигает левый край строки на количество точек, указанных в символы, по-умолчанию – пробелы:

>>> print(string.ljust(50, '-'))
This Is Some string-------------------------------

string.rjust(количество, символы) – то же, но с правой стороны:

>>> print(string.rjust(50, '-'))
-------------------------------This Is Some string

string.lstrip(символы) – возвращает строку, с обрезанными с левой стороны символами (по-умолчанию – пробелы):

>>> string = 'This Is Some string'
>>> print(string.lstrip('T'))
his Is Some string

string.rstrip(символы) – то же, но с правой стороны:

>>> print(string.rstrip('g'))
This Is Some strin

string.strip(символы) – выполняет lstrip() и rstrip() для символов, по-умолчанию – пробелы:

>>> string = '     This Is Some string     '
>>> print(string.strip())
This Is Some string
>>> string = '-----This Is Some string-----'
>>> print(string.strip('-'))
This Is Some string

string.replace(старый, новый, количество) – возвращает стркоу, в которой меняет старые символы на новые, если указано – то на максимальное указанное количество совпадений:

>>> string = '11111 22222 33333'
>>> print(string.replace('1', '5'))
55555 22222 33333
>>> print(string.replace('1', '5', 2))
55111 22222 33333

string.swapcase() – инвертирует ЗАГЛАВНЫЕ в строчные, и наоборот:

>>> string = 'This Is Some String'
>>> print(string.swapcase())
tHIS iS sOME sTRING

string.lower() – возвращает строку, в которой все символы переведены в строчные:

>>> string = 'This Is Some string'
>>> print(string.lower())
this is some string

string.upper() – возвращает строку, в которой все символы переведены в ЗАГЛАВНЫЕ:

>>> string = 'This Is Some String'
>>> print(string.upper())
THIS IS SOME STRING

string.title() – возвращает стркоу, в которой все первые символы элементов переведены в Заглавные (“titlestyle“):

>>> string = 'This is some string'
>>> print(string.title())
This Is Some String

Строковые методы, для получения информации об объекте

string.count(символ, начало, конец) – возвращает количество вхождений символа, начало-конец – опциональны, отсчёт с 0:

>>> string = 'This is some string'>>> print(string.count('T'))
1
>>> print(string.count('T', 0, 2))
1
>>> print(string.count('T', 2, 6))
0
>>> type(string.count('T', 2, 6))
<type 'int'>

string.startswith(символ, начало, конец) – возвращает True, если строка начинается с символа, начало-конец – опциональны:

>>> string = 'ia ia ia'
>>> string.startswith('i', 1, 3)
False
>>> string.startswith('i')
True

string.endswith(символ, начало, конец) – возвращает True, если строка заканчивается на символ, начало-конец – опциональны, отсчёт с нуля:

>>> string = 'This is some string'
>>> string.endswith('g')
True
>>> string.endswith('g', 0, 2)
False

string.find(символ, начало, конец) – возвращает индекс первого найденного символа, начало-конец – опциональны, или -1 – если не найдено

>>> string = 'This is some string'
>>> string.find('i')
2
>>> string.find('i', 3, 7)
5
>>> string.find('g', 0, 7)
-1

string.index(символ, начало, конец)  – то же, что и find(), но вызывает ValueError в случае, если символ не найден:

>>> string.index('i')
2
>>> string.index('g', 0, 7)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

string.rfind(символ, начало, конец) – возвращает последний (самый большой) индекс найденного символа, начало-конец – опциональны, -1 – если не найден:

>>> string = 'ia ia ia'
>>> string.rfind('i')
6
>>> string.rfind('i', 0, 2)
0
>>> string.rfind('i', 0, 3)
0
>>> string.rfind('i', 0, 4)
3
>>> string.rfind('i', 1, 3)
-1

string.rindex(символ, начало, конец) – то же, что и rfind(), но вызывает ValueError, если не найдено:

>>> string.rindex ('i')
6
>>> string.rindex('i')
6
>>> string.rindex('i', 1, 3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

string.isalnum() – возвращает True, если строка – буквенно-цифровая, и в ней есть хотя бы один символ:

>>> string = 'Alpha12345'
>>> string.isalnum()
True
>>> string = '12345'
>>> string.isalnum()
True
>>> string = ''
>>> string.isalnum()
False

string.isalpha() – возвращает True, если строка состоит только из букв:

>>> string = 'Alpha'
>>> string.isalpha()
True
>>> string = '12345'
>>> string.isalpha()
False

string.isdigit() – то же, но наоборот:

>>> string = '12345'
>>> string.isdigit()
True
>>> string = 'Alpha'
>>> string.isdigit()
False

string.islower() – возвращает True, если все символы – строчные:

>>> string = 'Alpha'
>>> string.islower()
False
>>> string = 'alpha'
>>> string.islower()
True

string.isspace() – возвращает True, если все символы – пробелы:

>>> string = '  '
>>> string.isspace()
True
>>> string = ' a '
>>> string.isspace()
False

string.istitle() – возвращает True, если все элементы начинаются с ЗАГЛАВНОЙ буквы:

>>> string = 'This Is Titled String'
>>> string.istitle()
True
>>> string = 'this is titled string'
>>> string.istitle()
False
>>> string = 'This is titled string'
>>> string.istitle()
False

string.isupper() – возвращает True, если все буквы ЗАГЛАВНЫЕ:

>>> string = 'UPPER STRING'
>>> string.isupper()
True
>>> string = 'lower string'
>>> string.isupper()
False

string.partition(символ) – делит строку на три части одного кортежа, выделяя символ в отдельный элемент:

>>> string = 'This is string'
>>> string.partition('i')
('Th', 'i', 's is string')

string.split(символ) – возвращает список, вырезая символ:

>>> string = 'This is string'
>>> string.split('i')
['Th', 's ', 's str', 'ng']