Редактирование строк в 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"
Ответы
Вопрос 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 |