Редактирование строк в Python

Содержание
Введение
capitalize
Обрезать строку
split(): строку в список
strip(): очистить от лишних символов
replace(): замена символов
Вопросы для самопроверки
Похожие статьи

Введение

В этой статье вы можете изучить различные приёмы редактирования строк.

Общую информацию о строка в Python читайте здесь

Методы

Изучить все доступные для работы со str методы можно вызвав функцию help с аргументом str

>>> help(str)

capitalize

Рассмотрим метод capitalize

| capitalize(self, /) | Return a capitalized version of the string. | | More specifically, make the first character have upper case and the rest lower | case.

>>> c = "topBicycle.ru"
>>> c.capitalize()

'Topbicycle.ru'

Первая буква стала заглавной. Все остальные стали строчными.

capitalize() не изменят изначальную строку. Это можно проверить выполнив

>>> c

'topBicycle.ru'

Обрезать строку

# удалить x символов с конца строки s s[:-x] # удалить y символов с начала строки s s[y:] # обрезать и начало и конец s[y:-x] # оставить только x символов с начала строки s s[:x] # оставить только y символов с конца строки s s[-y:]

Как запомнить что будет удалено:

Число это всегда индекс элемента. Он может быть как положительным так и отрицательным. 0 и -0 это одно и то же.

Если число стоит справа от двоеточия - удалится то что справа от индекса включая элемент с этим индексом.

Если число стоит слева от двоеточия - удалится то что слева от индекса.

s = s[:x] + s[x:]

Примеры

s = "abcd" print(f"{s} = {s[:1]} + {s[1:]}")

abcd = a + bcd

# 012345678 url = "https://www.heihei.ru" print(url[:8]) # https:// print(url[8:]) # www.heihei.ru

https:// www.heihei.ru

url = "https://www.heihei.ru" print(url[:-3]) # https://www.heihei print(url[-3:]) # .ru

https://www.heihei .ru

split(): строку в список

Превратить строку в список можно методом split()

По умолчанию разделитель это пробел

>>> cities = "Benalmadena Cordoba Fuengirola Malaga Narva Riga" >>> c_list = cities.split() >>> c_list[3]

'Malaga'

Если бы разделителем был не пробел а другой символ, например |, и он встречался бы в начале и конце строки в списке появились бы две дополнительных пустых строки.

cities = "|Benalmadena|Cordoba|Fuengirola|Malaga|Narva|Riga|" c_list = cities.split("|") print(c_list)

['', 'Benalmadena', 'Cordoba', 'Fuengirola', 'Malaga', 'Narva', 'Riga', '']

Избавиться от ненужных пустых строк можно с помощью функций filter() и list()

print(list(filter(None, c_list)))

['Benalmadena', 'Cordoba', 'Fuengirola', 'Malaga', 'Narva', 'Riga']

strip(): очистить от лишних символов

Убрать из строки лишние символы в начале и конце строки можно методом strip()

По умолчанию удаляются пробелы

site = " heihei.ru " s = site.strip() print("of all websites", s, "is my favorite")

of all websites heihei.ru is my favorite

Можно явно указать от каких символов нужно очистить строку.

capital = ",,,bbbbbcc....Riga..,,zz" c = capital.strip(",bc.z") print(c, "is the captital of Latvia")

Riga is the captital of Latvia

strip() удаляет символы только в самом начале и в самом конце строки

a = "----A---B---C----" print(a) b = a.strip("-") print(b)

----A---B---C---- A---B---C

Если нужна замена символов во всей строке - подойдёт метод replace()

replace()

С помощью replace() можно заменить символы на другие где бы они не находились.

Рассмотрим пример с uuid() - удалим все дефисы.

uid = str(uuid.uuid4()) rp = uid.replace("-", "") print(rp)

ceff8b0e-408f-489a-8441-52e95952ff04 ceff8b0e408f489a844152e95952ff04

Экранирование одиночной кавычки

# symbol_in_str.py s = "Bobby's bites" print(s) if "'" in s: print("Found ' in s") name = s.replace("'", "\'") else: name = s print(name)

Bobby's bites Found ' in s Bobby\'s bites

Вопросы для самопроверки

1

Вопрос: что вернёт print(res)

# 1 sample = 'a"bc"def"' res = sample[sample.index('"') + 1 : sample.index('"', (sample.index('"') + 1))]

Посмотреть ответ

2

Вопрос: что вернёт s.isupper()

s = "1C"

Посмотреть ответ

РЕКЛАМА хостинга Beget, которым я пользуюсь более десяти лет

Изображение баннера

Конец рекламы хостинга Beget, который я всем рекомендую.

Ответы

Вопрос 1

# 1 sample = 'a"bc"def"' res = sample[sample.index('"') + 1 : sample.index('"', (sample.index('"') + 1))] print(res) # bc

bc

Вопрос 2

# 2 s = "1C" print(s.isupper())

True

Автор статьи: Андрей Олегович

Похожие статьи
Строки
Манипуляции со строками
f-string
format string
encode()
difflib

РЕКЛАМА хостинга Beget, которым я пользуюсь более десяти лет

Изображение баннера

Конец рекламы хостинга Beget, который я всем рекомендую.

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: