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']