Методы строк
В таблице ниже приведены некоторые наиболее употребительные методы объектов-строк и unicode-объектов.
center(w) | Центрирует строку в поле длины w |
count(sub) | Число вхождений строки sub в строке |
encode([enc[, errors]]) | Возвращает строку в кодировке enc. Параметр errors может принимать значения "strict" (по умолчанию), "ignore", "replace" или "xmlcharrefreplace" |
endswith(suffix) | Оканчивается ли строка на suffix |
expandtabs([tabsize]) | Заменяет символы табуляции на пробелы. По умолчанию tabsize=8 |
find(sub [,start [,end]]) | Возвращает наименьший индекс, с которого начинается вхождение подстроки sub в строку. Параметры start и end ограничивают поиск окном start:end, но возвращаемый индекс соответствует исходной строке. Если подстрока не найдена, возвращается -1 |
index(sub[, start[, end]]) | Аналогично find(), но возбуждает исключение ValueError в случае неудачи |
alnum() | Возвращает True, если строка содержит только буквы и цифры и имеет ненулевую длину. Иначе -- False |
isalpha() | Возвращает True, если строка содержит только буквы и длина ненулевая |
isdecimal() | Возвращает True, если строка содержит только десятичные знаки (только для строк Unicode) и длина ненулевая |
isdigit() | Возвращает True, если содержит только цифры и длина ненулевая |
islower() | Возвращает True, если все буквы строчные (и их более одной), иначе -- False |
isnumeric() | Возвращает True, если в строке только числовые знаки (только для Unicode) |
isspace() | Возвращает True, если строка состоит только из пробельных символов. Внимание! Для пустой строки возвращается False |
join(seq) | Соединение строк из последовательности seq через разделитель, заданный строкой |
lower() | Приводит строку к нижнему регистру букв |
lstrip() | Удаляет пробельные символы слева |
replace(old, new[, n]) | Возвращает копию строки, в которой подстроки old заменены new. Если задан параметр n, то заменяются только первые n вхождений |
rstrip() | Удаляет пробельные символы справа |
split([sep[, n]]) | Возвращает список подстрок, получающихся разбиением строки a разделителем sep. Параметр n определяет максимальное количество разбиений (слева) |
startswith(prefix) | Начинается ли строка с подстроки prefix |
strip() | Удаляет пробельные символы в начале и в конце строки |
translate(table) | Производит преобразование с помощью таблицы перекодировки table, содержащей словарь для перевода кодов в коды (или в None, чтобы удалить символ). Для Unicode-строк |
translate(table[, dc]) | То же, но для обычных строк. Вместо словаря - строка перекодировки на 256 символов, которую можно сформировать с помощью функции string.maketrans(). Необязательный параметр dc задает строку с символами, которые необходимо удалить |
upper() | Переводит буквы строки в верхний регистр |
В следующем примере применяются методы split() и join() для разбиения строки в список (по разделителям) и обратное объединение списка строк в строку
>>> s = "This is an example." >>> lst = s.split(" ") >>> print lst ['This', 'is', 'an', 'example.'] >>> s2 = "\n".join(lst) >>> print s2 This is an example.
Для проверки того, оканчивается ли строка на определенное сочетание букв, можно применить метод endswith():
>>> filenames = ["file.txt", "image.jpg", "str.txt"] >>> for fn in filenames: ... if fn.lower().endswith(".txt"): ... print fn ... file.txt str.txt
Поиск в строке можно осуществить с помощью метода find(). Следующая программа выводит все функции, определенные в модуле оператором def:
import string text = open(string.__file__[:-1]).read() start = 0 while 1: found = text.find("def ", start) if found == -1: break print text[found:found + 60].split("(")[0] start = found + 1
Важным для преобразования текстовой информации является метод replace(), который рассматривается ниже:
>>> a = "Это текст , в котором встречаются запятые , поставленные не так." >>> b = a.replace(" ,", ",") >>> print b Это текст, в котором встречаются запятые, поставленные не так.