Методы класса str в Python

Текстовая информация хранится в объектах строкового типа.

Проверка вхождения одной строки в другую:
print("abc" in "abcba")
print("abce" in "abcba")

print("cabcd".find("abc", 1))  # индекс первого вхождения или -1
print("cabcd"[1:].find("abc"))
print(str.find.__doc__)

print("cabcd".index("abc"))  # индекс первого вхождения или ValueError
print("cabcd".index("aec"))

Проверка на то начинается ли строка с какой-нибудь подстроки или заканчивается ли какой-нибудь подстрокой:
s = "The whale in black fled across the desert, and the gunslinger followed"
print(s.startswith(("The woman", "The dog", "The man in black"))) print(s.startswith.__doc__) s = "image.png" print(s.endswith(".png"))

Число не пересекающихся вхождений одной строки в другую:
s = "abacaba"
print(s.count("aba"))
print(s.count.__doc__)

У некоторых функций есть правосторонние аналоги, которые делают то же самое, но начинают читать строку справа налево:
print(s.find("aba"))
print(s.rfind("aba"))

Приведение к нижнему или верхнему регистру:
s = "The man in black fled across the desert, and the gunslinger followed"
print(s.lower())
print(s.upper())
print(s.count("the"))
print(s.lower().count("the"))

Замена всех вхождений или заданного числа вхождений подстроки на другую подстроку:
s = "1,2,3,4"
print(s)
print(s.replace(",", ", ", 2))
print(s.replace.__doc__)

Разделение строки по заданному разделителю:
s = "1\t\t 2  3       4       "
print(s.split())
print(s.split.__doc__)
В методе split можно задать максимальное число разбиений. По умолчанию в качестве разделителя используется любая последовательность пробельных символов и пустые строки будут удалены из ответа.

Методы rstrip, lstrip и strip чистят соответственно справа, слева и с обоих концов.
s = "_*__1, 2, 3, 4__*_"
print(repr(s.rstrip("*_")))
print(repr(s.lstrip("*_")))
print(repr(s.strip("*_")))

Метод принимает последовательность, т.е. то по чему можно проитерироваться, и он вставляет заданную строку между всеми элементами последовательности:
numbers = map(str, [1, 2, 3, 4, 5])
print(repr(" ".join(numbers)))
Элементы последовательности должны быть строками.

Процесс подстановки какого-то конкретного значения в общий шаблон называется форматированием:
capital = 'London is the capital of Great Britain'
template = '{} is the capital of {}'
print(template.format("London", "Great Britain"))
print(template.format("Vaduz", "Liechtenstein"))
print(template.format.__doc__)


template = '{capital} is the capital of {country}'
print(template.format(capital="London", country="Great Britain"))
print(template.format(country="Liechtenstein", capital="Vaduz"))

Благодаря форматированию можно обращаться к атрибутам объектов, которые мы передали:
import requests
template = "Response from {0.url} with code {0.status_code}"

res = requests.get("https://docs.python.org/3.5/")
print(template.format(res))

res = requests.get("https://docs.python.org/3.5/random")
print(template.format(res))

Можно использовать метод forward и указать в специальном синтаксисе, что нас интересует только три знака после запятой в нашем числе:
from random import random
x = random()
print(x)
print("{:.3}".format(x))

Комментариев нет:

Отправить комментарий