Как из строки удалить подстроку?
Как удалить из этой строки подстроку, где содержится определенное имя? Например, name = ‘Mila’ ? и чтобы ptint вывел:
Hello, my name Bil Hello, my name Tim Hello, my name Den Hello, my name Loki
Отслеживать
25k 4 4 золотых знака 20 20 серебряных знаков 36 36 бронзовых знаков
задан 28 окт 2021 в 8:20
97 1 1 золотой знак 3 3 серебряных знака 11 11 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Смотря что нужно в результате, если просто print
str = 'Hello, my name Bil' \ '\nHello, my name Tim' \ '\nHello, my name Mila' \ '\nHello, my name Den' \ '\nHello, my name Loki' name = "Bil" for i in str.split("\n"): if not name in i: print(i)
Hello, my name Tim Hello, my name Mila Hello, my name Den Hello, my name Loki
Вообще split() метод создаст вот такой лист
['Hello, my name Bil', 'Hello, my name Tim', 'Hello, my name Mila', 'Hello, my name Den', 'Hello, my name Loki']
и вот уже с ним можно делать все что угодно. Он итерируемый, изменяемый, его можно бросить в отдельную переменную и крутить вертеть как хочется
UPD для входного значения со списком. Решение не оптимальное, но будет легко понимаемое для ТС.
положим список в отдельную переменную и создадим список с именем и один пустой где будем хранить индексы для совпадений
l = str.split("\n") names = ['Bil', 'Tim'] indexes =[]
Теперь пробежимся для каждого элемента списка и найдем встречаются ли имена в из списка names , если да, то сохраним индексы для списка l
for i in l: for n in names: if n in i: indexes.append(l.index(i))
Теперь посмотри, что у нас хранит переменная indexes
>>> indexes [0, 1]
то есть нулевой и первый элементы не должны выводится. Можно скопировать в итоговый лист
res = [] for i in range(0, len(l)): if i not in indexes: res.append(l[i])
посмотрим, что содержит res
>>> res ['Hello, my name Mila', 'Hello, my name Den', 'Hello, my name Loki']
Манипуляции с индексами можно опустить и сразу обрабатывать/копировать. Здесь это больше для ясности
Как удалить часть строки в питоне
Чтобы удалить часть строки, можно с помощью срезов собрать новую строку.
Есть что добавить? Зарегистрируетесь
Курсы по программированию на Хекслете
Backend-разработка
Разработка серверной части сайтов и веб-приложений
Frontend-разработка
Разработка внешнего интерфейса сайтов и веб-приложений и верстка
Создание сайтов
Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails
Тестирование
Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP
Аналитика данных
Сбор, анализ и интерпретация данных на Python
Интенсивные курсы
Интенсивное обучение для продолжающих
DevOps
Автоматизация настройки локального окружения и серверов, развертывания и деплоя
Веб-разработка
Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков
Математика для программистов
Обучение разделам математики, которые будут полезны при изучении программирования
JavaScript
Разработка сайтов и веб-приложений и автоматизированное тестирование на JS
Python
Веб-разработка, автоматическое тестирование и аналитика данных на Python
Java
Веб-разработка и автоматическое тестирование на Java
PHP
Веб-разработка и автоматическое тестирование на PHP
Ruby
Разработка сайтов и веб-приложений на Ruby on Rails
Go
Курсы по веб-разработке на языке Go
HTML
Современная верстка с помощью HTML и CSS
SQL
Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД
Git
Система управления версиями Git, регулярные выражения и основы командой строки
Похожие вопросы
01 ноября 2021
01 ноября 2021
- python строки
- python массивы
01 ноября 2021
- python строки
- python массивы
01 ноября 2021
- 8 800 100 22 47 бесплатно по РФ
- +7 495 085 28 38 бесплатно по Москве
Направления
- Курсы «Backend-разработка»
- Курсы «Frontend-разработка»
- Курсы «Создание сайтов»
- Курсы «Тестирование»
- Курсы «Аналитика данных»
- Интенсивные курсы
- Курсы DevOps
- Курсы «Веб-разработка»
- Курсы «Математика для программистов»
- Все курсы
О Хекслете
- О нас
- Карьера в Хекслете
- Хекслет Колледж
- Сведения об образовательной организации
- Лицензия № Л035-01216-73/00668844
ООО «Хекслет Рус» 432071, г. Ульяновск, пр-т Нариманова, дом 1Г, оф. 23 ОГРН 1217300010476
- Справка
- Вопросы и ответы
- Сообщество
- Дополнительно
- Условия использования
- Соглашение об обработке ПД
- Оферта
- Акции
Удаление подстроки с конца строки в Python
В программировании на Python часто возникает ситуация, когда нужно удалить определенную подстроку с конца строки. В качестве примера можно привести ситуацию, когда есть URL-адрес, и требуется удалить из него расширение домена, например, ‘.com’.
url = 'example.com'
Однако, при попытке использовать метод strip() , который предназначен для удаления символов с начала и конца строки, результат может быть неожиданным:
print(url.strip('.com')) # Вывод: 'example'
В этом случае метод strip() удаляет все символы, указанные в аргументе, с обоих концов строки, пока не встретит символ, не указанный в аргументе. Поэтому он удаляет не только ‘.com’, но и любые другие символы ‘c’, ‘o’, ‘m’ и ‘.’, которые встречаются в конце строки, что может привести к неправильному результату.
Для того чтобы корректно удалить подстроку с конца строки, можно использовать метод rsplit() . Этот метод разбивает строку на подстроки, используя указанный разделитель, и возвращает список подстрок. Аргумент ‘1’ указывает, что разбиение должно производиться с конца строки и только один раз.
print(url.rsplit('.com', 1)[0]) # Вывод: 'example'
В данном случае первый элемент списка будет содержать исходную строку без указанной подстроки ‘.com’. Этот способ более надежен, так как он удаляет именно требуемую подстроку, а не отдельные символы.
Таким образом, для удаления подстроки с конца строки в Python рекомендуется использовать метод rsplit() .
Строки в Python 3. Индексирование и срезы.
В этой статье вы узнаете про то, как соединить строки в Python, а так же, как извлекать подстроки и последовательности из одной строки.
Введение
Строки в Python — это последовательности символов, заключенные в одинарные, двойные или тройные кавычки.
Строки в Python неизменяемы.
Мы можем получить доступ к каждому символу строки, используя нарезку строк в Python.
Соединение строк также называется индексированием.
Что такое соединение строк?
Соединение строк или индексация — это метод, с помощью которого мы можем получить доступ к любому символу или группе символов из строки. В Python символы или подстроки какой-либо строки могут быть доступны с помощью квадратных скобок [ ] точно так же, как мы получаем доступ к элементам из списка в Python. Мы можем получить доступ к символу из строки, используя как положительные, так и отрицательные индексы.
При использовании положительных индексов для соединения строк в Python первому символу строки присваивается индекс ноль, а индекс последующих символов увеличивается на 1 до конца.
Например, мы можем напечатать первый символ, третий символ и одиннадцатый символ строки, используя следующую программу. Обратите внимание, что индексация в Python основана на 0, то есть первому символу присваивается индекс 0, а не 1:
x = "Скоро наступит лето" y = x[0] print(y) y = x[2] print(y) y = x[10] print(y)
С о у
При использовании отрицательных индексов для индексирования строк в Python последнему символу строки Python присваивается индекс -1, а при движении назад каждому символу присваивается индекс на 1 меньше, чем его предыдущему символу.
В следующем примере я использую отрицательную индексацию для печати символов строки Python:
x = "Скоро наступит лето" y = x[-1] print(y) y = x[-3] print(y) y = x[-6] print(y)
о е т
Как извлечь подстроку из строки?
Подстрока — это непрерывная часть строки Python. Она может начинаться с любого индекса и заканчиваться на любом индексе. Подстроку так же принято называть срезом.
Используя положительную индексацию, мы можем захватить подстроку с помощью оператора квадратных скобок [ ]. Мы можем указать индекс начального символа и индекс конечного символа строки, которая должна быть включена в подстроку. Чтобы извлечь подстроку используем string_name[start_index:last_index]. Символ в start_index включен в подстроку, но символ в last_index не включен. Включены только символы до last_index-1. Следовательно, start_index является инклюзивным, а last_index — эксклюзивным.
В приведенных ниже примерах вы увидите, что символы в start_index были включены в выходные данные, а символы в last_index не были включены в выходные данные:
x = "Скоро наступит лето" y = x[0:2] print(y) y = x[4:7] print(y) y = x[0:7] print(y)
Ск о н Скоро н
Чтобы извлечь подстроку от начала до заданного индекса, мы можем оставить пустым значение start_index:
x = "Скоро наступит лето" y = x[:6] print(y) y = x[:8] print(y) y = x[:11] print(y)
Скоро Скоро на Скоро насту
Чтобы извлечь строку, начинающуюся с заданного индекса и заканчивающуюся последним индексом, мы можем просто оставить значение last_index пустым:
x = "Скоро наступит лето" y = x[0:] print(y) y = x[3:] print(y) y = x[12:] print(y)
Скоро наступит лето ро наступит лето ит лето
Мы также можем извлекать подстроки из строк Python, используя отрицательные индексы таким же образом, как и выше:
x = "Скоро наступит лето" y = x[-10:-1] print(y) y = x[:-1] print(y) y = x[-5:-2] print(y)
тупит лет Скоро наступит лет ле
Подстроки в Python также являются строками, и мы можем выполнять такие операции, как конкатенация строк, разделение строк Python и так далее.
Например, мы можем выполнить конкатенацию строк, как показано в следующем примере:
x = "Скоро наступит лето" y1 = x[-10:-1] y2 = x[:-1] y3 = x[-5:-2] print(y1 + y2 + y3)
тупит летСкоро наступит лет ле
Как извлечь подпоследовательность из строки?
Подпоследовательность строки — это последовательность символов, которые извлекаются из строки, не нарушая порядок, в котором символы присутствуют в строке.
Символы в подпоследовательности могут быть или не быть непрерывными символами входной строки Python.
Чтобы извлечь подпоследовательность, я использую оператор квадратной скобки [ ]. Синтаксис для захвата подпоследовательности из строки — string_name[start_index, end_index, difference]».
Difference обозначает число, которое должно быть добавлено к start_index, чтобы получить индекс следующего символа, который будет включен в подпоследовательность, а difference-1 — это символы, которые пропускаются после того, как символ включен в подпоследовательность.
x = "Скоро наступит лето" y = x[0:10:2] print(y) y = x[0:10:3] print(y) y = x[0:10:5] print(y)
Соонс Срнт С
Заключение
В этой статье вы узнали об индексировании строк в Python. Вы также увидели, как извлекать подстроки и подпоследовательности из строки Python с помощью соединения строк.
