Доброго времени суток, читатели, зрители моего канала programmer's notes.
Данная статья это приложение к уроку 10.
Ссылка на одиннадцатый урок
Срезы (слайсы) в строка Python
В видеоуроке я довольно подробно изложил понятие срезов. Здесь просто подытожу сказанное.
- Срез это часть строки, которая определяется двумя индексами и шагом. s[i:j:h] - первый символ подстроки имеет индекс i, последний - j-1. Шаг по-умолчанию равен 1. Например s = 'qwertyuiop'. s[1:6:1] - 'werty'. s[1:6:2] - 'wry'. Если шаг равен 1, то можно писать так s[1:6:] или так s[1:6]. Если начало подстроки 0, то можно опускать первый индекс s[:6], если конец подстроки совпадает с концом основной строки, то можно опустить второй индекс s[1:]. Наконец s[:] это просто другое обозначение s.
- Срезы очень удобно использовать для строковых операций: удаление части строки, вставка одной строки в другую, замена одной подстроки на другую. На видеоуроке это было показано. Но еще раз приведу здесь примеры
Удалить подстроку с 2-ого по 4-й символ.
s = 'qwertyuiop'
s = s[0:2] + s[5:]
Вставить подстроку начиная с 3-его символа
s = 'qwertyuiop'
s1 = '1234'
s = s[0:3] + s1 + s[3:]
Заменить фрагмент начиная со 2-ого по 5-ого включительно.
s = 'qwertyuiop'
s1 = '1234'
s = s[0:3] + s1 + s[6:] - Можно использовать отрицательный шаг. Тогда, например, легко получить строку с обратной последовательности символов. s = s[-1::-1].
- Поскольку срез это тоже строка, то можно брать срезы от срезов. s[1:10][3:7] и т.п.
В заключении приведу пример поиска подстроки в строке. С помощью срезов программа получается более понятной и компактной.
Замечание
Интерпретатор довольно аккуратно работает с индексами. Если индекс не реалистичные значения ошибка не генерируется, а просто возвращается пустая строка.
s = 'qwe'
print(s[0:10]) # печатает всю строку
print(s[5:10]) # пустая строка
print(s[2:0]) # пустая строка
Результат выполнения
qwe
Всего наилучшего. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.
#программирование #программисты #python #языки программирования